Skip to main content
Glama

AINumbers Fintech Intelligence Suite

Server Details

530 MCP tools across 561 fintech tools: ChainGraph AP2 decisions, execution_hash. Zero PII.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
PostOakLabs/ainumbers-mcp-apps
GitHub Stars
2
Server Listing
ainumbers-mcp-apps

TDQS

C2.7/5.0

Scored across 719 tools

Disambiguation2/5

With 719 tools, many near-duplicate pairs exist: each browser widget has a compute-node twin (build_google_ap2_mandate vs draft_ap2_mandate_credential, validate_ap2_mcp_policy vs validate_ap2_mandate_credential, compare_agentic_payment_protocols vs compare_agentic_rail_protocols), and verb families like build_/assemble_/compose_ or check_/validate_/verify_ blur together. Within a domain (e.g. MiCA, settlement finality) a dozen overlapping tools make selection guesswork despite long descriptions.

Naming Consistency4/5

The overwhelming majority follow a consistent snake_case verb_noun convention (calculate_, check_, validate_, verify_, build_, classify_ X). A minority deviate to noun-first or verbless forms (camt053_parse, pain001_validate, recon_match, sdjwt_issue, compute_verify_receipt), but these remain readable and predictable.

Tool Count1/5

719 tools is an extreme mismatch for any server purpose; even the descriptions cite sub-catalogs of 661 nodes, 480+ client-side tools, and 368 chains. This volume guarantees an agent cannot hold the surface in context or select reliably — far past the 50+ threshold for the lowest score.

Completeness4/5

Coverage across regulatory/fintech domains is unusually broad (CRUD-style lifecycle is not the model here; it is a compute/verify suite), and the set includes meta-tools for discovery, verification, chaining, and export (find_tool, find_chain, build_chaingraph, verify_execution_hash, emit_chaingraph_artifact). Gaps are hard to identify, though the redundancy of twin tools suggests overlap rather than missing capability.

Available Tools

719 tools
acdc_said_checkRecompute ACDC / vLEI credential SAIDs (structural integrity)A
Read-onlyIdempotent
Inspect

Agent-facing mirror of the tools/553 browser workbench (VS-1) -- recomputes the self-addressing identifiers (SAIDs) of a pasted ACDC / vLEI credential JSON (top-level "d" plus any nested a/e/r blocks) under the KERI/CESR Blake3-256 ("E") or SHA2-256 ("I") derivation codes, and cross-checks the declared schema SAID ("s") against a pinned table of 6 official GLEIF vLEI schema SAIDs. Reuses the SAME vendored SAID-check module as T553 -- the same credential produces byte-identical findings in either surface. Returns per-field match/mismatch/unsupported/unknown findings plus a receipt. This is a STRUCTURAL check only -- NOT the KERI chain of trust, NOT issuer authority, NOT revocation state. No network egress.

ParametersJSON Schema
NameRequiredDescriptionDefault
credentialYesACDC / vLEI credential JSON object (v, d, i, ri, s, a, e, r fields).

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only, idempotent, non-destructive. Description reinforces this by stating it returns findings and receipt, no network egress. Adds detail on derivation codes and schema cross-check, exceeding annotation basics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences front-loading purpose, scope, behavior, and exclusions. Every sentence delivers key information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers all necessary aspects: input, processing, derivation codes, cross-check, output type, and what is excluded. Sufficient for an agent to select and invoke correctly without output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter 'credential' is described as ACDC/vLEI JSON object with expected subfields (v, d, i, ri, s, a, e, r). Schema coverage 100%, but description adds meaning about how these fields are processed (SAID recomputation, schema cross-check), which is not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it recomputes SAIDs of ACDC/vLEI credentials under specific derivation codes and cross-checks schema SAID against a pinned table. It distinguishes this as a structural integrity check separate from trust/authority/revocation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists what the tool does (structural SAID check) and what it does NOT do (KERI chain of trust, issuer authority, revocation). Mentions reuse of T553 module, giving context for expected behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

adjudicate_emir_reconciliationEMIR Trade-Repository Reconciliation AdjudicatorC
Read-onlyIdempotent
Inspect

EMIR Trade-Repository Reconciliation Adjudicator: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-483-emir-break-ageing. Open at: https://ainumbers.co/chaingraph/art-482-emir-recon-adjudicator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
tradesNo
break_setNo
as_of_dateNo
break_countNo
trade_countNo
tr_matched_countNo
tr_disputed_countNo
field_tolerance_table_versionNo
verdict_disagrees_with_tr_countNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive/closed-world, but the description adds genuinely useful behavior: compute modes (auto/server/browser), browser delegation, transient processing with no storage or logging, the 'synthetic or anonymised inputs only' constraint, and an AP2 export carrying execution_hash. Retention and data-handling disclosure goes beyond the structured fields. It still omits what the decision function returns or any failure/rejection behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Roughly 180 words where the domain-relevant content is a single clause; the remainder is ChainGraph platform boilerplate about kernels, delegation URLs, and FV-status receipt hashes. It is not front-loaded toward the tool's actual function, and most sentences do not earn their place for an agent deciding whether to call it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute/privacy/provenance aspects are covered. What is missing is domain completeness: a tool whose inputs are an opaque policy_parameters bag should say what the adjudication decision is and what those parameters represent, given the deep sibling set it must be disambiguated from.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description only restates the compute mode semantics, which duplicates the enum's own description, and adds nothing about how parent hashes chain or which policy_parameters fields matter. Baseline 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line name a specific verb+resource (adjudicating EMIR trade-repository reconciliation breaks), so the domain is identifiable. However, the body never explains what 'adjudication' decides, and nothing distinguishes it from close siblings such as reconcile_emir_pairing, age_emir_reconciliation_breaks, or validate_emir_trade_report. The rest of the text is generic platform boilerplate rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the many other EMIR reconciliation tools. The only routing hint is 'Output feeds: art-483-emir-break-ageing', which describes downstream consumption, not when an agent should select this tool over alternatives. Prerequisites and exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

age_emir_reconciliation_breaksEMIR Reconciliation Break AgeingC
Read-onlyIdempotent
Inspect

EMIR Reconciliation Break Ageing: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-482-emir-recon-adjudicator. Open at: https://ainumbers.co/chaingraph/art-483-emir-break-ageing.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
breaksNo
evaluated_atNo
newly_closedNo
total_currentNo
persisting_countNo
newly_closed_countNo
newly_opened_countNo
escalation_breached_countNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent/non-destructive profile, and the description adds genuinely new behavioral context: inputs are processed transiently and not stored or logged, compute modes (auto/server/browser) determine server-side vs browser delegation, gpu:true nodes always delegate, and the node exports an AP2 artifact carrying execution_hash for provenance. It stops short of explaining determinism caveats or the execution_hash verification path in concrete terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long and boilerplate-heavy, with near-duplication ('OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node.'), restatement of compute-mode semantics that the schema already carries, and a long FV-status URL/receipt sentence. The core purpose sentence is buried under platform metadata rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not explain return values, and annotations cover safety. But for a 4-parameter node with a nested free-form policy_parameters object, the description never states what decision function is being run or what ageing semantics apply, leaving the agent dependent on external manifest/URL content it cannot fetch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description largely restates the compute-binding semantics already present in the enum description and adds nothing about policy_parameters field names — it explicitly defers to 'the tool's manifest'. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line give a specific verb+resource (ageing of EMIR reconciliation breaks), which is more than a tautology. However, the body never explains what 'ageing' produces (bucket scheme, days-past-due logic, output shape) and offers no differentiation from close siblings such as reconcile_emir_pairing, adjudicate_emir_reconciliation, or check_emir_uti_completeness, so an agent cannot tell exactly which EMIR break tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no routing to alternatives; the sibling set is dense with overlapping EMIR reconciliation tools. The only usage constraint given is 'Use synthetic or anonymised inputs only', which is a data-handling caveat rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

agentic_mandate_sandboxAgentic Mandate SandboxA
Read-onlyIdempotent
Inspect

Simulate agent payment policies for tokenized A2A corridors: set spend caps, MCC allowlists, velocity throttles, and approval thresholds; run synthetic transactions against the policy and export the result as a Policy Mandate. Browser-based, client-side only, zero PII. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive. The description adds critical behavioral context: client-side execution, no network calls, no PII, uses AIN Bridge for inputs, and renders an interactive widget. This exceeds the information in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and capabilities. Slight redundancy on 'client-side' and 'zero PII' across two sentences, but remains clear and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description adequately covers purpose, constraints, input mechanism, and execution environment. The mention of 'export result as a Policy Mandate' provides sufficient context for return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter 'inputs' has a schema description (100% coverage). The description adds value by explaining it's a map of element IDs to values applied via AIN Bridge prefill, and referencing the manifest input_schema for details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool simulates agent payment policies with specific capabilities (spend caps, MCC allowlists, velocity throttles, approval thresholds). It distinguishes itself from siblings like 'simulate_spend_policy' by emphasizing it's a sandbox with an interactive widget and client-side execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the tool is browser-based, client-side only, and zero PII, which implies it's safe for experimentation. However, it does not explicitly mention when to use this tool over alternatives like 'simulate_spend_policy' or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

aggregate_cbam_precursor_emissionsCBAM Precursor-Emissions AggregatorB
Read-onlyIdempotent
Inspect

CBAM Precursor-Emissions Aggregator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-68-carbon-compliance-fit-diagnostic. Output feeds: art-69-cbam-embedded-emissions-calculator, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-72-cbam-precursor-emissions-aggregator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
quantity_tonnesNo
scrap_adjustmentNo
data_quality_gradeNo
precursor_breakdownNo
cumulative_see_tco2eNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, but the description adds genuinely new behavior: transient processing with no storage/logging/retention, browser delegation semantics, and emission of an AP2 artifact with execution_hash for provenance. These go beyond what the annotations convey and are consistent with them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded but the text is padded with repeated self-labeling ('OpenChainGraph compute node' appears twice) and a long offline-receipt aside about the FV-status file. Several sentences could be trimmed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the description still covers compute modes, input-handling constraints, provenance chaining and upstream/downstream artifact links. Only the actual decision semantics of policy_parameters remain implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode explanation merely restates the schema and adds no new parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title convey a specific verb+resource (aggregating CBAM precursor emissions), but the description itself mostly explains OpenChainGraph compute mechanics rather than what the aggregation computes. It never distinguishes this tool from close siblings like calculate_cbam_embedded_emissions or model_cbam_certificate_cost.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives; the compute auto/server/browser discussion is a rendering preference, not a selection criterion between tools. The only real usage instruction is 'use synthetic or anonymised inputs only,' which is a constraint rather than a when-to-use rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

aggregate_execution_receiptsAgent-Action Audit-Trail AggregatorB
Read-onlyIdempotent
Inspect

Agent-Action Audit-Trail Aggregator: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-30-agent-commerce-conformance-validator, art-31-a2a-x402-extension-mandate-validator, art-33-mcp-server-self-attestation-pack, cry-04-merkle-batch-verifier. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/cry-05-agent-action-audit-trail-aggregator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
receiptsNo
n_receiptsNo
tree_depthNo
merkle_rootNo
max_chain_depthNo
all_proofs_verifiedNo
session_receipt_rootNo
aggregator_chain_depthNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely useful context beyond that: inputs are processed transiently and not stored/logged/retained, 'use synthetic or anonymised inputs only,' and compute-mode delegation behavior (server vs browser, gpu:true always delegates). This is meaningful behavioral disclosure a caller could not get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode and privacy content is front-loaded usefully, but the body is dense with pipeline plumbing and ends in a verbose FV-status URL plus a long hex hash that consume space without helping an agent invoke the tool. Several sentences could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover safety, so those burdens are relieved. However, the core aggregation semantics are never explained and policy_parameters content is deferred to an external 'manifest' rather than described, leaving a gap for a compute tool with a nested free-form object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode and execution_hash explanations largely duplicate what the schema already says and add no new syntax or format detail. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Agent-Action Audit-Trail Aggregator: OpenChainGraph compute node') and calls itself a 'Deterministic OpenChainGraph compute node,' but never states plainly what it does with the receipts it aggregates or what the aggregation produces beyond 'exports an AP2 artifact with execution_hash.' The verb+resource is only inferable from the tool name, not the description text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It lists upstream artifacts it consumes and the downstream tool its output feeds ('ptg-01-ap2-prompt-template-generator'), which hints at pipeline position, but it gives no explicit when-to-use guidance, no conditions, and no alternatives among the many sibling aggregators/validators. The agent must infer usage from the artifact lineage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

aggregate_ownership_50pctOwnership 50%-Rule AggregatorA
Read-onlyIdempotent
Inspect

Ownership 50%-Rule Aggregator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-90-sanctions-screening-fit-diagnostic. Output feeds: art-92-screening-list-coverage-checker, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-91-ownership-50pct-aggregator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
summaryNo
blocked_countNo
entity_verdictsNo
reference_versionNo
listed_entity_countNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the readOnly/idempotent/non-destructive safety profile, but the description adds genuinely useful behavior: deterministic server-side vs browser-delegation compute modes, transient processing with no storage/logging/retention, and an AP2 artifact carrying execution_hash for provenance. This goes well beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with redundancy ('OpenChainGraph compute node' stated twice), receipt/URL boilerplate, and FV-status prose that does not help an agent select or invoke the tool. The functional statement is buried rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter node with nested objects and an output schema, the description supplies the important missing context: chaining inputs/outputs, data-retention policy, and provenance export. Return values are rightly left to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description only restates the compute-mode behavior already documented in the schema and defers policy_parameters to 'the tool's manifest', adding no new parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — aggregating the ownership 50%-rule as a deterministic OpenChainGraph compute node within the compliance_mandate class. An agent can identify the function, though it is wrapped in template boilerplate and never explicitly contrasts itself with sibling aggregate_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete chaining context (consumes art-90-sanctions-screening-fit-diagnostic, feeds art-92 and cry-05), which implies where it fits in a pipeline. However, there is no explicit when-to-use/when-not or alternative-selection guidance for an agent choosing between tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

aggregate_reputation_scoreProvable Reputation Score AggregatorC
Read-onlyIdempotent
Inspect

Provable Reputation Score Aggregator: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-278-reputation-score-aggregator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dimsNo
as_ofNo
compositeNo
subject_idNo
attestation_countNo
decay_half_life_daysNo
excluded_self_issuedNo
insufficient_evidenceNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real behavioral context beyond them: inputs are processed transiently and not stored/logged/retained, browser delegation occurs for compute:'browser' and gpu:true nodes, and an AP2 artifact with execution_hash is exported for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense run-on spanning compute modes, data handling, chain provenance, an external URL and a 64-character hex FV-status path. The hash/filename and 'a snapshot, not a subscription' clause consume significant space without helping an agent decide to call or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the description does cover compute delegation, data retention, and provenance export. However, for a 4-parameter aggregation node it never explains what is being aggregated or what policy_parameters should contain, leaving the core 'what am I computing' question unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description's compute-mode text largely duplicates the 'compute' parameter's own schema description, and it adds no field-level meaning for policy_parameters beyond referring to the manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening two sentences ('Provable Reputation Score Aggregator: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node.') essentially restate the name and title without saying what reputation score is being aggregated from which inputs. Nothing distinguishes it from the dozens of other '*_compute node' siblings (aggregate_solvency2_scr_modules, aggregate_execution_receipts, etc.); the differentiating information is buried in an infra/URL sentence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage instruction is the constraint 'Use synthetic or anonymised inputs only.' There is no statement of when to call this tool versus sibling aggregators, no prerequisites, and no routing guidance beyond the compute-mode mechanics that are already in the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

aggregate_solvency2_scr_modulesSolvency II SCR Standard-Formula Module AggregatorB
Read-onlyIdempotent
Inspect

Solvency II SCR Standard-Formula Module Aggregator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-180-solvency2-scr-ratio-calculator. Open at: https://ainumbers.co/chaingraph/art-449-solvency2-scr-module-aggregator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bscrNo
life_scrNo
scr_totalNo
health_scrNo
market_scrNo
default_scrNo
nonlife_scrNo
scr_operationalNo
loss_absorbing_adjustmentNo
adjustment_exceeds_bscr_plus_opNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context beyond them: transient processing with no logging or retention, a synthetic-inputs-only constraint, the AP2 artifact with execution_hash for provenance, and the browser-delegation fallback. This is meaningful behavioral disclosure. It stops short of 5 because return/pagination behavior and failure modes are unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front matter opens with infrastructure boilerplate rather than the tool's job, and the closing FV-status sentence embeds a 64-character hash path with a snapshot/subscription caveat that is mostly noise for tool selection. The compute-mode details and privacy statement earn their place; the URL/hash tail does not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and annotations exist, so safety and return shape are covered externally. Still, the core decision-function inputs (policy_parameters) are punted to an external manifest, and the description never explains what 'modules' are being aggregated, leaving a gap for a fairly complex chained computation node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description restates the compute-mode semantics but adds nothing about the chaining parameters and explicitly defers policy_parameters fields to 'the tool's manifest'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title convey that this aggregates Solvency II SCR standard-formula modules, but the description body itself spends most of its text on OpenChainGraph compute-node mechanics rather than stating what the aggregation does or what inputs it consumes. A sibling like calculate_solvency2_scr_ratio is not distinguished from this one, so the agent must infer the boundary. Purpose is discernible but not carried by the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives real usage guidance for the compute parameter (when to use auto/server/browser) and names a downstream consumer ('Output feeds: art-180-solvency2-scr-ratio-calculator'). However it never says when to choose this tool over the sibling SCR ratio calculator or when aggregation is warranted versus a direct calculation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

aggregate_summa_mst_liabilitiesSumma MST Liability AggregatorB
Read-onlyIdempotent
Inspect

Summa MST Liability Aggregator: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-620-summa-mst-inclusion-checker. Open at: https://ainumbers.co/chaingraph/art-621-summa-mst-liability-aggregator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: deterministic computation, transient processing with no storage/logging/retention, and the fact that it exports an AP2 provenance artifact with execution_hash for chaining.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core operational facts are front-loaded, but the paragraph is dense with proprietary jargon and closes with a verbose FV-status/receipt sentence that reads as boilerplate rather than task-relevant guidance. Several clauses could be trimmed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does compensate by naming the output artifact type and its downstream consumer, and it covers data-handling and compute modes. But the actual decision function inputs are deferred to 'the tool's manifest,' leaving the aggregation semantics and return payload shape under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description repeats the compute-mode semantics and adds no new per-parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node and states it exports an AP2 artifact with execution_hash feeding art-620-summa-mst-inclusion-checker. However, what the aggregation actually computes ('Summa MST liabilities') is only implied by the title/name and never explained, so the agent gets the plumbing but not the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives compute-mode guidance (auto/server/browser, browser delegation) which is mostly restated in the schema, and a data-handling warning about synthetic inputs. But there is no when-to-use-vs-alternative guidance, no prerequisites, and no indication of when this aggregation is appropriate versus the many sibling aggregators.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

aggregate_taxonomy_kpi_garTaxonomy KPI & Green Asset Ratio AggregatorB
Read-onlyIdempotent
Inspect

Taxonomy KPI & Green Asset Ratio Aggregator: OpenChainGraph compute node (model_governance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-73-taxonomy-alignment-scorer. Output feeds: cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-74-taxonomy-kpi-gar-aggregator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
referenceNo
gar_detailNo
entity_typeNo
aligned_countNo
kpi_breakdownNo
activity_countNo
opex_aligned_pctNo
capex_aligned_pctNo
green_asset_ratioNo
revenue_aligned_pctNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, but the description adds real operational context: transient processing with no storage/logging/retention, synthetic-inputs-only guidance, server vs browser delegation semantics, and an AP2 export carrying execution_hash for provenance. This goes meaningfully beyond the annotations, though the compute-mode text partly duplicates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the title, but the body is one dense run-on paragraph that repeats 'OpenChainGraph compute node' twice and embeds a raw FV-status hash URL. The core purpose is buried under infrastructure boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and an output schema present, the safety profile and return shape are covered, and the description supplies provenance (upstream/downstream artifacts), compute-mode behavior, and data-retention policy. What is missing is the substantive KPI/GAR computation semantics, which the manifest reference leaves unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds little parameter detail beyond the schema; notably it says to consult 'the tool's manifest' for policy_parameters field names, which leaves the most important inputs opaque rather than compensating.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names a specific aggregation (Taxonomy KPI & Green Asset Ratio) and the description scopes it as a model_governance compute node with named upstream (art-73-taxonomy-alignment-scorer) and downstream (cry-05-...) artifacts. However, the body text is almost entirely infrastructure boilerplate and never states what the aggregation actually computes or what a GAR result means, so the operation itself is only inferable from the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The chain position (consumes art-73, feeds cry-05) implies when this node belongs in a workflow, and the compute modes hint at execution context. But there is no explicit when-to-use vs alternatives and no conditions/exclusions, so an agent must infer placement from the artifact graph.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

allocate_ihb_interestIHB Interest AllocationA
Read-onlyIdempotent
Inspect

IHB Interest Allocation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-259-compute-multilateral-netting, art-262-validate-ebam-acmt-flow. Open at: https://ainumbers.co/chaingraph/art-260-allocate-ihb-interest.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
daysNo
pii_noteNo
pool_typeNo
allocationsNo
entity_countNo
table_sourceNo
base_currencyNo
table_versionNo
arm_length_rateNo
not_legal_adviceNo
pool_net_balanceNo
regulatory_basisNo
oecd_tp_compliantNo
day_count_fractionNo
day_count_conventionNo
net_interest_payableNo
total_interest_allocatedNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and non-open-world, so the safety profile is covered; the description adds genuinely non-obvious behavior: inputs are processed transiently and not stored or logged, browser mode returns a delegation URL instead of computing, and an AP2 artifact with execution_hash is exported for provenance. That is real added context beyond the annotations, though it does not describe response shape or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional statement is front-loaded, but the body is padded with infrastructure boilerplate and a long FV-status sentence ending in a raw 64-hex receipt hash that contributes little to tool selection or invocation. Several clauses duplicate the schema's compute description. The text is readable but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and all four parameters are schema-documented. What is missing is the substance of the decision function: policy_parameters accepts arbitrary keys and the description defers field names to an external manifest, so an agent cannot construct a meaningful call from the definition alone. The upstream/downstream chain and doc link partly compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented in the schema; the description's compute-mode text largely repeats the schema's own enum description. It does add the chaining intent via 'Consumes upstream artifacts from...', but policy_parameters field names are punted ('See the tool's manifest for field names') rather than clarified. Baseline 3 applies when the schema carries the weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('IHB Interest Allocation') and frames it as a deterministic OpenChainGraph compute node in the analytics_mandate family, which differentiates it from sibling compute tools. It also names the upstream artifacts it consumes (art-259-compute-multilateral-netting, art-262-validate-ebam-acmt-flow), tying it to real siblings. However, it never explains what the IHB interest allocation decision actually computes, leaving the semantic purpose to the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-conditions for the compute mode (auto/server/browser, gpu:true always delegates), which is useful operational guidance. But it never says when an agent should choose this tool over alternative compute or allocation tools, nor any prerequisites beyond the upstream artifacts consumed. Usage is implied by the chain context rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

amortize_asc606_commissionsASC 340-40 Commission AmortizationB
Read-onlyIdempotent
Inspect

ASC 340-40 Commission Amortization: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-266-reconcile-commission-statement. Open at: https://ainumbers.co/chaingraph/art-265-amortize-asc606-commissions.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
table_sourceNo
table_versionNo
apply_expedientNo
carrying_amountNo
impairment_flagNo
not_legal_adviceNo
regulatory_basisNo
renewal_treatmentNo
annual_amortizationNo
asc340_40_compliantNo
monthly_amortizationNo
amortization_period_monthsNo
total_amortization_periodsNo
incremental_cost_test_passedNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower — yet the description adds real value beyond them: transient input processing with no storage/logging/retention, deterministic execution, browser-delegation URL returned for gpu:true or compute:'browser', and an exported AP2 artifact carrying execution_hash for provenance. That is substantive behavioral disclosure for a compute node.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded reasonably (name/label first) but bloated: the trailing FV-status snapshot clause with a 64-character hash and the 'not a subscription; verifies offline regardless' aside consume space without helping an agent decide or invoke. Several sentences describe the OpenChainGraph platform rather than this tool, diluting the signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers chaining, compute modes and privacy. But for a compliance compute node with a nested policy_parameters object it never states which policy fields are expected, and it never describes what the amortization actually produces or its governing assumptions — the agent must consult an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the four parameters are already fully documented in the schema, so the baseline is 3. The description echoes the compute-mode semantics that the schema already defines and says nothing about the contents of policy_parameters beyond 'See the tool's manifest', adding no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('ASC 340-40 Commission Amortization') and labels the tool a 'compute node (compliance_mandate)', but never says in plain terms what it computes — e.g. that it builds a capitalized commission amortization schedule from reconciled commission data. It does distinguish itself contextually by naming its upstream artifact (art-266-reconcile-commission-statement), which hints at its role in a chain, but the core verb+resource statement is largely tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is meaningful operational guidance: compute mode semantics (auto/server/browser), the 'synthetic or anonymised inputs only' restriction, and the note that it consumes upstream artifact art-266. However, nothing says when to use this tool versus the many sibling amortization/build-schedule tools, nor any prerequisites for ordering it in a chain.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_dc_vs_lc_cost_benefitDocumentary Collection vs Letter of Credit Cost-BenefitB
Read-onlyIdempotent
Inspect

Documentary Collection vs Letter of Credit Cost-Benefit: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-478-analyze-dc-vs-lc-cost-benefit.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dcTotalFeesUSDNo
heuristic_noteNo
lcTotalFeesUSDNo
recommendationNo
dcRiskAdjCostUSDNo
lcRiskAdjCostUSDNo
dcRiskExposureUSDNo
lcProtectionScoreNo
breakEvenProbabilityPctNo
lc_protection_score_heuristicNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context beyond them: deterministic execution, transient processing with no storage/logging/retention, server-vs-browser compute routing, and an exported AP2 artifact carrying execution_hash for chain provenance. That is meaningful disclosure for a compute node.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool's name but immediately front-loads low-value compute-binding plumbing that is also in the schema. The trailing artifact URL and FV-status hash receipt are tangential to tool selection, adding bulk without helping an agent decide or invoke.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. The description is complete on execution mechanics and provenance but omits the domain semantics of the DC-vs-LC analysis and what fields policy_parameters expects (it defers to 'the tool's manifest'). Adequate but with a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's explanation of compute modes duplicates the schema's own enum description and adds nothing about what belongs in policy_parameters. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a concrete verb and resource (cost-benefit analysis of documentary collection vs letter of credit), but the description itself only restates the title in the first clause and then pivots to OpenChainGraph compute-node boilerplate. It never explains what the analysis produces or how it differs from siblings like compute_ltc_funding_comparator or compare_receivables_finance_economics. Purpose is inferable from the name, not from the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use statement and no routing to an alternative sibling. The only situational advice is 'Use synthetic or anonymised inputs only,' which is an input-safety rule rather than usage guidance. An agent must guess when this cost-benefit comparison is the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

analyze_prediction_marketPrediction Market AnalyzerC
Read-onlyIdempotent
Inspect

Prediction Market Analyzer: OpenChainGraph compute node (event_market_pnl). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-212-prediction-market-arbitrage. Open at: https://ainumbers.co/chaingraph/art-211-prediction-market-analyzer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pnlYes
wonNo
modeYes
sideYes
venueYes
payoutNo
strikeNo
fee_paidNo
log_scoreNo
disclaimerYes
unit_valueNo
brier_scoreNo
entry_priceNo
n_contractsYes
odds_decimalNo
odds_americanNo
expected_valueNo
kelly_fractionNo
odds_fractionalNo
half_kelly_stakeNo
settlement_deltaNo
settlement_valueNo
no_vig_fair_valueNo
settlement_clampedNo
implied_probabilityNo
settlement_in_rangeNo
break_even_probabilityNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, closed-world), the description discloses genuinely useful behavior: inputs are processed transiently and never stored or logged, execution is deterministic server-side for registered kernels, browser mode returns a delegation URL instead of a result, and the call exports an AP2 artifact carrying execution_hash. That is real added context on data handling and output side effects. It stops short of describing what the computed result actually contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense metadata block that front-loads provenance plumbing (compute binding, retention policy, artifact hash) rather than the tool's purpose, and it ends with a long dead-weight FV-status URL plus a 64-character receipt hash that no selection decision depends on. Space spent on chain-provenance mechanics crowds out what the tool computes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter tool whose core policy_parameters object is left as an untyped free-form bag and explicitly deferred to an external manifest, the description makes no attempt to say what decision inputs the analysis expects or what the AP2 artifact reports. An output schema exists so return values need no explanation, but the agent still cannot tell what to pass to get a meaningful prediction-market analysis.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics (auto/server/browser, gpu:true delegation) without adding format or ordering detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The only statement of what the tool does is the internal code 'compute node (event_market_pnl)', which restates the title and points at an opaque artifact identifier rather than describing what analyzing a prediction market yields. Nothing distinguishes it in plain language from siblings such as find_prediction_arbitrage, which the description merely names as a downstream consumer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus find_prediction_arbitrage, assess_defi_lending, or any other market-related sibling. The only directives are input-handling constraints ('Use synthetic or anonymised inputs only') and compute-mode routing, neither of which tells an agent when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

anchor_document_integrityDocument Integrity & eIDAS Electronic Timestamp AnchorB
Read-onlyIdempotent
Inspect

Document Integrity & eIDAS Electronic Timestamp Anchor: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-122-timestamp-attestation-verifier. Open at: https://ainumbers.co/chaingraph/art-121-document-integrity-anchor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
anchoredNo
document_hashNo
document_typeNo
timestamp_claimNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: determinism, transient processing with no storage/logging/retention, the AP2 artifact + execution_hash export, and the note that the FV-status receipt verifies offline as a snapshot. That is real value over the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text opens by redundantly restating the title as a prefix, then crams together compute-mode boilerplate, data-retention language, chaining detail, a URL, and a long FV-status hash. The trailing snapshot/hash block is bloated relative to its decision value, and no clear ordering separates purpose from mechanics. Content is present but poorly trimmed and not cleanly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, and annotations cover the safety profile. The description covers compute modes, input hygiene, artifact emission, and the downstream consumer, but it never says what the integrity decision actually consumes (policy_parameters are punted to a manifest) or what 'anchoring' verifies, leaving an agent to infer the core input contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description largely restates the compute-mode semantics without adding field-level meaning, and it defers policy_parameters field names to a manifest. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and effect: it is a deterministic OpenChainGraph compute node that anchors document integrity and exports an AP2 artifact carrying an execution_hash for chain provenance. It even names the downstream consumer (art-122-timestamp-attestation-verifier), which helps place it. It does not, however, differentiate itself from the closely-named sibling anchor_stamp, leaving part of the routing decision to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the compute-mode machinery (server vs browser delegation) and an important input constraint ('Use synthetic or anonymised inputs only'), which implicitly scopes usage. But it never states when to choose this tool over anchor_stamp or verify_timestamp_attestation, and no exclusions are given. Usage is implied rather than prescribed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

anchor_stampAnchor an execution_hash (or batch) at a real timestamp authorityAInspect

Calls the anchor-suite MCP server (server-to-server, not the browser CORS-gated relay) to timestamp one execution_hash, or batch-anchor an array via anchor-suite's own anchor_batch (one upstream call per batch, RFC 6962 Merkle root anchored, per-hash merkle_inclusion returned), and shapes the result as literal OCG v0.7 section 20 anchor_bindings entries ready to append to an artifact. Success is only reported after this tool independently confirms anchored_hash (or, for a batch entry, merkle_inclusion.leaf) equals the caller-supplied hash -- it does not merely trust anchor-suite's response. On ANY failure -- anchor-suite unreachable, erroring, timing out, or an equality mismatch -- returns {ok:false, unanchored:true, reason} verbatim, never a fabricated binding. Caller-invoked only; not wired into any automatic per-artifact-emission path.

ParametersJSON Schema
NameRequiredDescriptionDefault
authorityNoDefaults to whatever anchor-suite's own anchor_hash/anchor_batch default to today (currently sigstore for rfc3161-tst) -- this tool does not own or hardcode a preference beyond that mirror.
execution_hashYesThe execution_hash(es) to anchor.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations claim no read-only, no idempotency, no destructiveness. The description elaborates meaningfully: success is only reported after independent confirmation of hash equality, failures return {ok:false, unanchored:true, reason} verbatim, never fabricating bindings, and the authority default is delegated/mirrored from anchor-suite. This is deep and valuable behavior disclosure beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well organized with clear cause-effect chains, but somewhat long — the failure-mode sentence and trust rationale could be tightened. Front-loads the core action first, which is good. No wasted filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complex tool (real-time authority, batch anchoring, cryptographic verification, OCG shaping) with no output schema, yet the description fully explains the success/failure contract, the verification guarantee, the batch mechanics, and the calling context. An agent can predict exactly what happens in every path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful semantics for execution_hash (single vs 2+ batch array, RFC 6962 Merkle root, per-hash merkle_inclusion) and authority (mirrors anchor-suite default). Only minor gap: array items lack 'sha256:' prefix documentation but this is minor.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear, specific action: timestamping execution_hash(es) via anchor-suite at a real timestamp authority, shaping results as OCG v0.7 section 20 anchor_bindings. Distinguishes from siblings (e.g., verify_execution_hash, verify_timestamp_attestation) by noting server-to-server vs browser relay and the explicit OCG shaping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when this is called (caller-invoked only, not wired into automatic emission), the batch vs single path, and its trust posture. Lacks explicit when-not/alternative tool naming, but the caller-invoked note and clear scope give sufficient context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ap2_aml_mandate_builderAP2 AML Mandate BuilderA
Read-onlyIdempotent
Inspect

Anchor agentic tool for Cat-12. Translate AML/BSA program controls, TM rules, and customer risk policy into a structured Policy Mandate JSON for agentic payment sy Browser-based, client-side only. Zero PII. Link users to https://ainumbers.co/tools/131-ap2-aml-mandate-builder.html for interactive use. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond the annotations: it confirms zero PII, client-side only, zero network, and explains it renders as a widget with inputs via AIN Bridge. Annotations already indicate readOnlyHint=true and destructiveHint=false, which are consistent. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences and front-loads the core purpose. It efficiently conveys the transformation, execution model, and user link. Minor redundancy between the first and last sentences could be tightened, but overall it is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested input, output schema exists), the description covers the transformation, execution constraints (client-side, zero PII), and directs users to an interactive version. It addresses the main aspects for an agent to understand and use the tool, though it lacks detail on output structure (output schema not shown).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the single 'inputs' parameter, describing it as a map of element IDs to values. The tool description does not significantly add to that; it repeats 'inputs are applied via the AIN Bridge'. With high schema coverage, baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it translates AML/BSA controls, TM rules, and customer risk policy into a Policy Mandate JSON. It identifies itself as an 'anchor agentic tool for Cat-12'. However, it does not differentiate from sibling tools like 'build_google_ap2_mandate' which likely has a similar purpose, missing explicit distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions 'Cat-12' which implies a specific category but does not explicitly state when not to use it or how it compares to siblings like 'compile_work_mandate' or 'build_google_ap2_mandate'. Usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

apply_climate_scenarioClimate Scenario Applicator (NGFS / Fit-for-55)B
Read-onlyIdempotent
Inspect

Climate Scenario Applicator (NGFS / Fit-for-55): OpenChainGraph compute node (model_governance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-68-carbon-compliance-fit-diagnostic, art-71-cbam-certificate-cost-engine. Output feeds: cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-76-climate-scenario-applicator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
deltaNo
metricNo
horizonNo
delta_pctNo
referenceNo
scenario_labelNo
baseline_metricNo
delta_by_sectorNo
scenario_familyNo
stressed_metricNo
gdp_delta_at_horizonNo
transition_intensityNo
carbon_price_assumptionNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so safety is covered. The description adds genuinely useful behavior beyond that: deterministic execution, transient processing ('not stored, logged, or retained'), an exported AP2 artifact with execution_hash for chain provenance, and explicit upstream/downstream chaining. Only the compute-mode mechanics are duplicates of the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the text is a dense run-on with filler ('Deterministic OpenChainGraph compute node' restating the node type) and a long FV-status hash block that crowds out substance. It is neither wildly overlong nor taut, sitting at adequate but loosely structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, return values need no explanation. The description covers compute modes, data-handling/privacy, provenance chaining, and upstream/downstream artifacts, which is close to complete for a compute node. The one gap is that the semantics of policy_parameters are deferred entirely to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode prose mirrors the schema's own compute definition and leaves policy_parameters fields to the manifest, adding no real meaning beyond the structured data. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool is identified as a 'Climate Scenario Applicator (NGFS / Fit-for-55)' OpenChainGraph compute node, which names the resource and domain. However, the verb 'apply' is generic and the body says nothing about what the node actually computes (scenario projections, stress outputs), so the purpose is largely carried by the title rather than elaborated. Upstream/downstream artifact references give some differentiation from siblings, but the core function stays vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to select this tool versus alternatives. The only usage constraint offered is 'Use synthetic or anonymised inputs only', and the compute-mode discussion is parameter-level rather than tool-selection guidance. An agent gets no routing signal relative to the many neighbouring compute nodes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assemble_ai_addendumAI Addendum AssemblerB
Read-onlyIdempotent
Inspect

AI Addendum Assembler: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-412-ai-act-procurement-clause-mapper. Output feeds: art-409-dpa-art28-completeness-checker. Open at: https://ainumbers.co/chaingraph/art-411-ai-addendum-assembler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
licenseNo
disclaimerNo
source_urlNo
attributionNo
body_sha256No
template_idNo
contract_apiNo
zero_pii_noticeNo
assembled_markdownNo
cover_page_markdownNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety bar is lower. The description nonetheless adds real context beyond annotations: inputs are processed transiently and not stored/logged/retained, and only synthetic/anonymised inputs should be used — a meaningful handling constraint for the caller. The chain-provenance and compute-delegation behavior is also disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the block is dense and mixes identity, compute binding, privacy, chain wiring, a URL, and an FV-status receipt hash. The trailing FV-status hash and snapshot disclaimer are largely noise for tool selection, diluting the actionable sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it appropriately covers compute delegation, privacy handling, and chain wiring via upstream/downstream artifacts. It is nearly complete for a compute node; the only gap is not clarifying the substantive decision content being assembled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description reinforces the compute-mode semantics and mentions execution_hash/chain provenance but does not add syntax or format detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node and an AI addendum assembler, and names its upstream/downstream artifacts, so the agent can place it in a chain. However, it never states what an 'AI addendum' actually is or what substantive output the tool produces beyond 'an AP2 artifact with execution_hash'. Among many sibling assemble_* tools, the actual assembled content is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It does explain the compute:'auto'/'server'/'browser' selection logic and notes that gpu:true nodes always delegate, which is genuine usage guidance for one parameter. But it offers no explicit 'use this when...' condition versus alternative assembler/compliance tools, and no exclusion criteria beyond the compute-mode mechanics.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assemble_aiuc1_evidence_packAIUC-1 Evidence Pack AssemblerA
Read-onlyIdempotent
Inspect

AIUC-1 Evidence Pack Assembler: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-303-aiuc1-control-evidence-linter, cry-05-agent-action-audit-trail-aggregator. Output feeds: art-305-aiuc1-evidence-freshness-lint. Open at: https://ainumbers.co/chaingraph/art-304-aiuc1-evidence-pack-assembler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
anchorNo
controlsNo
aiuc1_versionNo
version_mismatchNo
cadence_attestationNo
pack_claim_strengthNo
insufficient_evidenceNo
oscal_assessment_resultsNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description goes beyond them by disclosing transient processing with no storage or logging, the browser-delegation behavior for gpu:true nodes, and the execution_hash provenance of the export. The retention/privacy disclosure is the genuinely additive part; the compute-mode text largely duplicates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and lineage are front-loaded, which is good, but the block is padded with a bare HTML URL and a long FV-status receipt sentence whose hash string adds little for an agent deciding how to call the tool. Signal-to-noise is acceptable but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a chained compute node with an output schema and full annotation coverage, the description supplies the upstream/downstream lineage, compute-mode behavior, and privacy handling that an agent needs to call it correctly. Return-format detail is rightly left to the output schema; only the when-to-use framing is thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the compute enum. The description repeats the compute-mode text almost verbatim from the schema and adds no new meaning for parent_hashes, parent_tool_ids, or policy_parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title line names a specific verb+resource ('AIUC-1 Evidence Pack Assembler') and the body states it 'Exports an AP2 artifact with execution_hash for chain provenance', so the function is unambiguous. It does not name the obvious siblings it could be confused with (assemble_ocg_evidence_bundle, build_evidence_pack, build_226j_response_evidence_pack), instead referring to them only by artifact IDs, so sibling differentiation is weak.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real invocation constraints ('Use synthetic or anonymised inputs only', compute mode semantics) but never states when to choose this tool over the many sibling evidence-pack builders, nor any prerequisites. Usage is implied by the chain position (consumes art-303 / cry-05, feeds art-305) rather than stated as a selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assemble_license_termsLicense Terms AssemblerB
Read-onlyIdempotent
Inspect

License Terms Assembler: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-204-license-compatibility-checker. Output feeds: art-206-rights-record-builder. Open at: https://ainumbers.co/chaingraph/art-205-license-terms-assembler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
disclaimerNo
fields_usedNo
template_idNo
rendered_htmlNo
rendered_textNo
fields_missingNo
available_templatesNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description adds substantive traits beyond that: deterministic computation, transient processing with no storage/logging/retention, a 'use synthetic or anonymised inputs only' warning, kernel/compute-mode delegation semantics, and an execution_hash chained into the export. That is meaningful added context, though some is boilerplate repeated across the node family.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute/privacy/chain sentences earn their place, but the definition is dense and front-loaded with a redundant restatement ('OpenChainGraph compute node' twice) and a long FV-status URL/hash that adds noise for an agent choosing a tool. Information density is high but structure is not cleanly prioritized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and safety is covered by annotations. However, for a compute node whose policy_parameters content is delegate to a manifest, the description gives no domain-level explanation of what license terms are assembled or what the decision function requires, leaving a gap an agent would want filled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode behavior but adds no format or ordering detail beyond the schema, and defers policy_parameters fields to 'the manifest' rather than clarifying them. Baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening 'License Terms Assembler: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node' largely restates the name/title and self-repeats rather than stating what assembling license terms actually does. It signals the resource and that an AP2 artifact is exported, but never specifies the decision function or output, and gives no differentiation from close siblings like check_license_compatibility, certify_license_election, or select_embedded_license.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named for comparison. The chain context ('Consumes upstream from art-204... Output feeds art-206') is positional/provenance information, not advice on when an agent should select this tool versus another.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assemble_mutual_ndaMutual NDA ComposerB
Read-onlyIdempotent
Inspect

Mutual NDA Composer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-277-agreement-acceptance-binder. Open at: https://ainumbers.co/chaingraph/art-276-mutual-nda-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
licenseNo
disclaimerNo
source_urlNo
attributionNo
body_sha256No
template_idNo
contract_apiNo
zero_pii_noticeNo
assembled_markdownNo
cover_page_markdownNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful non-obvious traits: inputs are processed transiently and never stored/logged/retained, execution is deterministic, the output is an AP2 artifact carrying an execution_hash, and the FV-status receipt verifies offline. The 'Exports an AP2 artifact' phrasing is not a true write-back to a resource, so it does not contradict readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool name and role, but the bulk is infrastructure boilerplate (compute binding, Workers, delegation URLs) that crowds out the domain purpose. The FV-status sentence is long and somewhat tangential. It is not padded for its own sake, but the signal-to-noise ratio is poor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the operational envelope (transience, determinism, provenance) is covered. What is missing is domain completeness: nothing tells the agent what a mutual NDA composition should contain or how policy_parameters map to NDA terms, which is the main thing an agent needs to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The compute-mode text in the description largely duplicates the schema's own 'compute' description, and policy_parameters is deferred to 'the tool's manifest' in the schema rather than explained here. The description adds no meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line names the resource (Mutual NDA) and the tool's role (Composer / compute node for compliance_mandate), so an agent can guess it composes a mutual NDA. However, the description never explains what composing an NDA actually produces or does, and it offers no differentiation from siblings like assemble_ai_addendum, assemble_license_terms, or compose_globe_gir. Most of the text is about compute plumbing rather than the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute-mode paragraphs describe how the tool executes, not when to choose it over alternatives. The only guidance is 'Use synthetic or anonymised inputs only' and the downstream hint 'Output feeds: art-277-agreement-acceptance-binder.' There is no when-to-use, when-not-to-use, or sibling routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assemble_ocg_evidence_bundleEvidence Bundle Tier LabelerB
Read-onlyIdempotent
Inspect

Evidence Bundle Tier Labeler: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-408-evidence-bundle-tier-labeler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
proof_refsNo
tier_labelNo
disambiguationNo
eligible_tiersNo
gate_provenanceNo
proof_ref_countNo
artifact_tool_idNo
artifact_execution_hashNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, but the description adds material context: transient server-side processing with no storage, logging or retention, GPU-node delegation behavior, and export of an AP2 artifact with execution_hash for chain provenance. This goes meaningfully beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening repeats itself ('OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node.'), and the FV-status URL/hash occupies a full trailing sentence. The operational core is front-loaded, but a sentence of pure redundancy and a long opaque hash hurt density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the return shape need not be described, and the description covers compute modes, privacy posture, chaining via parent_hashes, and the provenance artifact. For a deterministic compute node it is largely complete, missing only explicit guidance on when to choose it over sibling evidence-pack tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with compute, parent_hashes, parent_tool_ids and policy_parameters all documented in the schema itself. The description restates the auto/browser delegation semantics already present in the compute enum description, adding no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'Evidence Bundle Tier Labeler' and an 'OpenChainGraph compute node (attestation_mandate)' with AP2 artifact export, but never states in plain terms what it computes or labels. Against siblings like build_evidence_pack or assemble_aiuc1_evidence_pack, the distinctive 'tier labeling' function is left implicit and an agent must infer it from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real operational guidance on compute mode selection (auto/server/browser) and a hard constraint ('Use synthetic or anonymised inputs only'). However, it never says when to pick this tool over the many evidence-pack siblings, so routing guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_agent_directory_publish_readinessAgent Directory Publish Readiness DiagnosticB
Read-onlyIdempotent
Inspect

Agent Directory Publish Readiness Diagnostic: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-133-agent-payment-rail-trust-crosswalk. Open at: https://ainumbers.co/chaingraph/art-134-agent-directory-publish-readiness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context beyond them: inputs are processed transiently and not stored, logged, or retained; compute:'auto' is server-side for gpu:false kernels while 'browser' forces a delegation URL; exports carry an execution_hash for provenance; and the FV-status receipt verifies offline. That is meaningful disclosure an agent could not derive from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is buried behind generic OpenChainGraph compute-node boilerplate, and the FV-status sentence carries a 64-character hash and a full URL that consume significant space without helping tool selection. The description is long relative to the decision-relevant information it conveys, and it is not front-loaded on what the assessment does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does explain that the return is an AP2 artifact with execution_hash and that it consumes upstream artifacts, which is adequate for the invocation mechanics. But it leaves the core question — what a publish-readiness assessment determines — unanswered, so an agent cannot judge whether the output answers its question.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters thoroughly. The description restates the compute modes and mentions chaining but adds no syntax or format detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause identify it as a publish-readiness diagnostic for an agent directory, and the description notes it exports an AP2 artifact and consumes art-133-agent-payment-rail-trust-crosswalk. However, it never states what 'readiness' actually checks or what criteria are evaluated, and the bulk of the text is infrastructure boilerplate rather than purpose. It is distinguishable by name from siblings like run_agentic_readiness_diagnostic only by its narrow subject, not by any description of behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is some actionable guidance: 'Use synthetic or anonymised inputs only' and the compute-mode selection rules. But there is no when-to-use versus alternatives — nothing routes the agent between this and the many sibling readiness/fit diagnostics (run_agentic_readiness_diagnostic, score_mcp_readiness, run_mcp_deployability_diagnostic). Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_ai_act_conformityEU AI Act Credit-Scoring Conformity PackC
Read-onlyIdempotent
Inspect

EU AI Act Credit-Scoring Conformity Pack: OpenChainGraph compute node (model_governance). Regulatory deadline: 2027-12-02 (EU AI Act Annex III Part 5(b) — credit-scoring high-risk obligations fully apply 2 December 2027, per the Digital Omnibus amendments (Parliament final approval, June 2026)). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: ml-01-isolation-forest, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-05-eu-ai-act-credit-scoring-conformity.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, but the description adds genuinely useful behavior: inputs are processed transiently and not stored/logged/retained, compute modes are explained (server vs browser delegation, gpu:true always delegating), and an AP2 artifact with execution_hash is exported for provenance. This is real context beyond the structured annotations, though it omits anything about error/failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is heavily over-stuffed with content that does not aid tool selection: precise statutory deadline dates, a URL, and a long FV-status receipt hash intended for offline verification. The genuinely important information (transient processing, compute-mode behavior) is buried among this regulatory boilerplate. It is not front-loaded around what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must convey return behavior, and it partially does: it mentions the exported AP2 artifact with execution_hash and the browser delegation URL. However, it never explains what the conformity decision output actually contains or how results should be interpreted, leaving a real gap for a read/compute tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters (compute enum behavior, parent_hashes/parent_tool_ids pairing, policy_parameters container). The description largely restates the compute-mode semantics already in the schema and defers field names to 'the tool's manifest.' Baseline 3 applies because the structured schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line identify the domain (EU AI Act credit-scoring conformity) and the tool type (an OpenChainGraph compute node), but the description never states in a plain verb+resource form what the node actually computes or returns. The regulatory deadline framing is prominent while the actual function stays abstract. It also does not distinguish itself from closely related siblings such as run_ai_act_highrisk_fit, classify_annex3_decisioning_obligations, or build_ai_conformity_pack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage instruction is the constraint 'Use synthetic or anonymised inputs only.' There is no when-to-use vs when-not guidance and no comparison to the many sibling conformity/readiness tools. The note about which downstream tools consume the output ('ml-01-isolation-forest, ptg-01-ap2-prompt-template-generator') hints at position in a pipeline but does not help an agent decide whether to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_circumvention_diligenceCircumvention Diligence AssessorB
Read-onlyIdempotent
Inspect

Circumvention Diligence Assessor: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-94-eccn-dual-use-classifier. Output feeds: art-96-no-russia-clause-pack-builder, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-95-circumvention-diligence-assessor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
dd_gapsNo
key_datesNo
dd_score_pctNo
diligence_gradeNo
reference_versionNo
diversion_risk_flagNo
eu_20th_package_noteNo
liability_allocationNo
controlled_goods_flagNo
no_russia_clause_statusNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses genuinely useful behavior: server-vs-browser compute delegation semantics, transient non-stored/non-logged processing, the synthetic-input-only constraint, and the AP2 export with execution_hash. That is real context the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute/transient/export sentences earn their place, but the FV-status hash sentence and repeated 'OpenChainGraph compute node' phrasing are boilerplate bloat. Front-loaded with infrastructure detail rather than the tool's actual function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and chain provenance is covered. But the core decision logic and the opaque policy_parameters field names remain unexplained, leaving a compliance agent without the substance needed to call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids. The description restates compute mode behavior and offers only 'See the tool's manifest for field names' for policy_parameters, adding little beyond the schema — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title conveys the verb+resource (assess circumvention diligence), and the description situates the tool in an artifact chain between art-94-eccn-dual-use-classifier and art-96/cry-04. However, it never states what the assessment actually evaluates or decides — the 'compliance_mandate' label and chain links do not tell an agent what this node computes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names upstream artifacts consumed and downstream consumers, which hints at pipeline position, but there is no explicit when-to-use, when-not-to-use, or alternative-tool guidance. Nothing directs the agent to prefer this over a generic dual-use classifier or sanctions screener.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_cra_vuln_reporting_readinessCRA Vulnerability Reporting Readiness (Art. 14)C
Read-onlyIdempotent
Inspect

CRA Vulnerability Reporting Readiness (Art. 14): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-139-cra-annex1-completeness-checker. Open at: https://ainumbers.co/chaingraph/art-140-cra-vuln-reporting-readiness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
vuln_reporting_readyNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the description's added value is genuine: it discloses deterministic execution, server-vs-browser compute routing, that inputs are processed transiently and not stored or logged, and that an AP2 artifact with execution_hash is exported for provenance. That is substantive behavioral context beyond the annotations. Slight deduction because the compute-routing content largely duplicates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence merely re-states the title, then large blocks of boilerplate about OpenChainGraph compute nodes are front-loaded before anything tool-specific. The final FV-status sentence embeds a 64-character hash URL that is noise for an agent deciding how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required. But for a compliance-readiness assessor with a nested policy_parameters object whose fields are deferred to an off-description 'manifest', the description never states what dimensions of Article 14 readiness are tested. The agent is left unable to predict the decision function's inputs or outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's only parameter-relevant content is the compute:

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a specific verb+resource (assess CRA Art. 14 vulnerability reporting readiness), and the description's opening sentence restates that. However, the body never explains what the assessment actually evaluates; it pivots immediately to compute-node plumbing. An agent can identify the topic but not the substance of the check, and the distinction from the related sibling check_cra_annex1_completeness is only implied by an upstream-consumption note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only directive is 'Use synthetic or anonymised inputs only' and a note that it consumes upstream artifacts from art-139-cra-annex1-completeness-checker. There is no when-to-use guidance, no when-not-to-use, and no explicit routing against the many readiness-assessment siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_defi_lendingDeFi Lending Health and Liquidation MonitorC
Read-onlyIdempotent
Inspect

DeFi Lending Health and Liquidation Monitor: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-271-defi-lending-health.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
protocolNo
table_sourceNo
health_factorNo
health_statusNo
table_versionNo
debt_value_usdNo
current_ltv_pctNo
regulatory_basisNo
borrow_capacity_usdNo
collateral_value_usdNo
not_financial_adviceNo
liquidation_bonus_pctNo
liquidation_mechanismNo
liquidation_price_usdNo
liquidation_penalty_usdNo
buffer_to_liquidation_pctNo
liquidation_threshold_pctNo
liquidation_mechanism_noteNo
distance_to_liquidation_pctNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description adds real behavior: deterministic execution, server-side vs browser delegation rules, transient non-retention of inputs, and export of an AP2 artifact with execution_hash for provenance. These are substantive operational traits, though it omits what the artifact/response body actually contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title is front-loaded, but the rest is heavy infrastructure boilerplate (Compute Binding modes, FV-status hash URL, offline receipt verification) that does not help an agent select or invoke the tool. A large share of the text does not earn its place relative to the tool's actual purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and annotations are present, so return format and safety are partly covered. But for a tool whose primary input is a free-form nested policy_parameters object, the description gives no hint of what it expects or what the assessment evaluates, leaving a real gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the description largely repeats the compute-mode semantics already documented in the schema. policy_parameters, the substantive input for the decision function, is left to 'see the tool's manifest' in the schema with no added field-level meaning in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and the phrase 'analytics_mandate' imply a DeFi lending health/liquidation assessment, giving a resource domain. However, the description never states what the decision function actually computes (collateral ratios, liquidation thresholds, health factors) or what the result contains, so the purpose remains generic. It reads as a provenance wrapper around a named capability rather than a specific verb+resource description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus near-neighbours such as assess_restaking_risk, compute_ltv_ratios, or run_liquidity_stress_test. The only routing-like text concerns compute mode (auto/server/browser), which is execution plumbing, not task-selection guidance. An agent cannot infer from this text which scenario selects this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_exam_readiness_packExamination Readiness PackC
Read-onlyIdempotent
Inspect

Examination Readiness Pack: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-670-examination-readiness-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
openNo
totalNo
validNo
errorsNo
overallNo
findingsNo
deliveredNo
overdue_idsNo
module_annexNo
overdue_countNo
readiness_pctNodelivered/total as a one-decimal percentage (IEEE-754 binary64, no intermediate rounding).
evidence_handoffNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, not open-world), and the description adds substantial behavior beyond that: transient processing with no storage/logging/retention, browser-delegation semantics, and an AP2 artifact export carrying an execution_hash for provenance. This is genuinely useful context a caller cannot get from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is dominated by repeated infrastructure phrasing ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node'), and the FV-status URL plus a 64-character hash are noise for tool selection. The one useful behavioral line (transient, no retention) is buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and full annotation coverage, the description need not explain return values, and it does cover compute routing and the artifact export. But the core question an agent needs answered, what the readiness assessment produces and what belongs in policy_parameters, is left to an external manifest, so it is only adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description only echoes the compute enum semantics ('auto'/'browser', gpu:true delegation) and adds nothing for chaining or policy_parameters fields, which it defers to 'the tool's manifest'. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the name and title ('Examination Readiness Pack: OpenChainGraph compute node (compliance_control)') and then spends its length on infrastructure boilerplate. It never states what an examination readiness assessment actually evaluates or what compliance control it checks. An agent learns it is a 'compute node' but not what it computes, and it is not differentiated from the many other assess_* / run_*_readiness siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a real input constraint ('Use synthetic or anonymised inputs only') and explains the compute-mode selection (auto vs browser vs gpu:true delegation). However, it offers no guidance on when to choose this tool over sibling readiness tools, and no preconditions or exclusions relative to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_iso42001_aims_conformanceISO 42001 AIMS Clause ConformanceB
Read-onlyIdempotent
Inspect

ISO 42001 AIMS Clause Conformance: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-172-ai-risk-impact-assessment-validator. Open at: https://ainumbers.co/chaingraph/art-171-iso42001-aims-clause-conformance.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
clause_scoreNo
control_scoreNo
maturity_bandNo
total_clausesNo
total_controlsNo
overall_maturityNo
clauses_fully_presentNo
controls_fully_presentNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses meaningful behavioral traits: deterministic execution, server- vs browser-side compute modes, transient input processing with no storage or logging, and emission of an AP2 artifact carrying execution_hash for provenance. This is substantive context an agent cannot get from annotations alone; minor gap is lack of stated auth/permission needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is dense boilerplate that repeats the compute-mode logic already in the schema and mixes an FV-status URL and an open-page URL into the definition. Some sentences (the FV-status snapshot paragraph) are marginally relevant and dilute the signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description supplies useful completion context – parent hashing for chain provenance, downstream consumer, and offline receipt verification. It is close to complete for correct invocation, lacking only explicit prerequisites/permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely restates the compute-mode behavior already present in the schema and adds no new meaning about the chaining or policy_parameters semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (ISO 42001 AIMS clause conformance) and identifies the node as a compliance_mandate compute node, but the operative verb is vague – it never plainly says it assesses/evaluates clauses against ISO 42001 controls. It does not distinguish itself from close siblings such as assess_ai_act_conformity, score_clause_coverage, or assess_naic_ais_program_readiness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance or comparison to alternatives. The only constraint offered is 'Use synthetic or anonymised inputs only', and the 'Output feeds: art-172-...' line hints at a downstream consumer but does not tell the agent when this tool is the right choice over other conformance assessors.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_mar_crypto_surveillanceMAR-Crypto Surveillance-Readiness AssessorB
Read-onlyIdempotent
Inspect

MAR-Crypto Surveillance-Readiness Assessor: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-98-mica-casp-fit-diagnostic. Output feeds: cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-103-mar-crypto-surveillance-readiness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
noteNo
stor_readyNo
mar_rts_noteNo
ppaet_statusNo
composite_pctNo
assets_in_scopeNo
reference_versionNo
arrangement_scoresNo
surveillance_gradeNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read/edit safety (readOnly, idempotent, non-destructive, closed-world). The description goes further by disclosing transient processing with no storage/logging/retention, the compute-mode routing (server vs browser delegation), and AP2 artifact/chaining behavior — meaningful operational context beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded with the purpose phrase, but the opening redundantly repeats 'OpenChainGraph compute node' and dilutes attention with provenance, FV-status hash and URL metadata that an invocation-focused reader may not need. Verbose without being padded to uselessness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be restated, and the description covers data handling, compute routing, chaining, and upstream/downstream artifact linkage. What remains missing — the actual decision logic and field names for policy_parameters — is deferred to the manifest, which is a reasonable handoff.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute modes but adds no new parameter semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name establish a verb+resource (assess MAR-crypto surveillance readiness) and the description adds context that it is a compliance_mandate compute node consuming art-98 and feeding cry-05. However, the description never says what the assessment actually evaluates or returns, so an agent learns the plumbing but not the substance of the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance versus the many sibling 'assess_*' tools. The only operative constraint is 'Use synthetic or anonymised inputs only', which is an input requirement, not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_mica_casp_readinessCASP Authorization-Readiness AssessorC
Read-onlyIdempotent
Inspect

CASP Authorization-Readiness Assessor: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-98-mica-casp-fit-diagnostic, art-99-mica-transitional-deadline-router. Output feeds: art-101-mica-art67-own-funds-calculator, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-100-mica-casp-authorization-readiness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
noteNo
composite_pctNo
notified_bodyNo
dimension_scoresNo
reference_versionNo
authorization_gradeNo
application_pack_checklistNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context: deterministic server-side compute with a registered kernel, browser delegation when compute:'browser' or gpu:true, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for provenance. It also names the upstream artifacts consumed and downstream consumers. That is well beyond the annotation surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is boilerplate-heavy and redundant ('OpenChainGraph compute node' repeated twice back-to-back), and it front-loads plumbing (compute binding, retention, FV-status receipt) ahead of any statement of what the assessment does. Sentences about the offline FV-status snapshot and the marketing URL do little to help an agent invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and provenance/upstream/downstream chaining is covered. However, for a domain-heavy compliance assessment the description gives no indication of what 'readiness' means here or what policy_parameters should contain beyond 'see the tool's manifest,' leaving the core invocation under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description largely restates the compute-mode semantics rather than adding syntax or examples, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line identify this as a MiCA CASP authorization-readiness assessor, and the 'compliance_mandate' label hints at scope. But the description never states what the assessment actually evaluates (which CASP authorization criteria are scored, what inputs drive the verdict), so the purpose is only implied by the name. It also fails to distinguish itself from the close sibling run_mica_casp_fit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no routing advice versus run_mica_casp_fit or the other MiCA tools (check_mica_register_presence, scope_mica_token_and_service). The only directive is 'Use synthetic or anonymised inputs only,' which is a constraint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_model_validation_statusModel Validation Status AssessorC
Read-onlyIdempotent
Inspect

Model Validation Status Assessor: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-451-model-outcome-analysis. Open at: https://ainumbers.co/chaingraph/art-453-model-validation-status.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierNo
overdueNo
as_of_dateNo
cadence_daysNo
outcome_statusNo
never_validatedNo
validation_statusNo
last_validation_dateNo
days_since_validationNo
next_validation_due_daysNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses real behavior: auto vs browser compute delegation, gpu:true always delegating, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying an execution_hash for provenance. That is meaningful context an annotation-stripped view would lack.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is appropriately front-loaded, but the second half is one dense run-on paragraph and includes a very long FV-status URL plus a raw hex hash receipt that is noise for tool selection. Some sentences earn their place, others do not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description covers the infrastructure envelope (compute, chaining, data handling). However, the actual decision function and required inputs are deferred to an external manifest, leaving the agent without enough to call the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enum and array parameters are already documented. The description echoes compute-mode and parent-hash chaining semantics already present in the schema and defers policy_parameters to 'the tool's manifest,' adding little beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('Model Validation Status Assessor: OpenChainGraph compute node') and then spends almost all its words on infrastructure (compute binding, provenance, FV-status). It never states what the assessment actually judges or how it differs from siblings like compute_eba_im_model_validation_tracker, run_model_test_battery, or compare_model_outcome_analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use versus alternatives guidance. The only usage instruction is a data constraint ('Use synthetic or anonymised inputs only') and a note that it consumes art-451-model-outcome-analysis, which implies positioning but does not tell the agent when to pick this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_naic_ais_program_readinessNAIC AI Systems Program Readiness AssessmentB
Read-onlyIdempotent
Inspect

NAIC AI Systems Program Readiness Assessment: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-239-test-bifsg-bias-thresholds. Open at: https://ainumbers.co/chaingraph/art-240-assess-naic-ais-program-readiness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, and the description adds genuinely useful behavioral context beyond them: transient processing with no storage/logging/retention, a mandate to use synthetic or anonymised inputs, deterministic execution, and an AP2 artifact with execution_hash for provenance. This exceeds the annotation baseline, though the compute-mode paragraph largely duplicates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Reasonably front-loaded with title and node type, but the body is a dense block of infrastructure boilerplate, including a compute-mode explanation that duplicates the schema and a long FV-status/receipt sentence. Much of it is template text rather than assessment-specific content, yet it remains readable as a single pass.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should describe what the assessment produces; it only says an AP2 artifact with execution_hash is exported, not what the evaluation result contains. The policy_parameters object is explicitly deferred to an external manifest, leaving decision inputs opaque. Data-handling and compute routing are well covered, so it is adequate but incomplete for a compliance assessment tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema, including the compute enum and the role of parent_hashes/parent_tool_ids. The description's only added parameter value is naming the upstream artifact (art-239-test-bifsg-bias-thresholds) that feeds the chain; otherwise it restates schema content. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title convey a specific verb+resource (assess NAIC AI systems program readiness), and the description confirms it is an OpenChainGraph compute node. However, the description never explains what the assessment actually evaluates (criteria, scoring, verdict) and gives no basis to distinguish it from siblings like assess_iso42001_aims_conformance or assess_mica_casp_readiness. The first sentence merely restates the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the many other readiness/conformance assessments in the sibling list. The only usage-like content is the compute-mode routing, which is invocation mechanics rather than tool selection or prerequisites. An agent cannot tell from the description when this assessment is the right one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_psd3_readinessPSD3 / PSR Readiness CheckerA
Read-onlyIdempotent
Inspect

PSD3 / PSR Readiness Checker: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2027-06-01 (EU PSD3 expected transposition ~2027; UK PSR enacted 2024 (APP reimbursement Oct 2024 already live)). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-04-agent-identity-attestation-checker, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-14-psd3-psr-readiness-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bandNo
verdictNo
critical_gapsNo
domain_scoresNo
overall_readiness_scoreNo

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which cover the safety profile), the description discloses substantial behavior: transient input processing with no storage/logging/retention, deterministic execution, server-vs-browser delegation semantics including the gpu:true rule, and an exported AP2 artifact carrying execution_hash for chain provenance. That is real behavioral context the annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is front-loaded with node type and regulatory deadline, but the text is dense with parenthetical asides, an external URL, and a long FV-status hash string that reads more like provenance noise than actionable guidance. It is informative but not tightly scoped.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return values need not be explained, and the description covers compute modes, data handling, artifact export, and downstream consumers adequately for a high-complexity compliance node. The remaining gap is that it never states what the readiness assessment actually evaluates, deferring the decision fields to the tool's manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics that the schema already documents and says nothing extra about parent_hashes/parent_tool_ids, and it explicitly defers the policy_parameters field names to an external manifest, so no marginal parameter meaning is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description establishes a specific regulated resource (PSD3/PSR readiness) and characterizes the tool as a deterministic OpenChainGraph compliance compute node with a concrete regulatory deadline. The verb+resource is clear, though the actual assessment the checker performs is largely implied by the title rather than stated, and it does not explicitly distinguish itself from the many other 'assess_*_readiness' siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through the compute-mode guidance ('auto' vs 'browser' vs 'server') and the 'Use synthetic or anonymised inputs only' constraint, plus the two downstream tools the output feeds. However, there is no explicit when-to-use/when-not or named alternative among siblings, leaving routing largely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_restaking_riskRestaking Delegation and Slashing Risk AnalyzerC
Read-onlyIdempotent
Inspect

Restaking Delegation and Slashing Risk Analyzer: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-272-restaking-risk.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
protocolNo
staked_ethNo
staked_usdNo
net_apy_pctNo
table_sourceNo
eth_price_usdNo
gross_apy_pctNo
max_slash_usdNo
protocol_noteNo
table_versionNo
net_usd_per_yearNo
operator_cut_pctNo
regulatory_basisNo
insurance_enabledNo
risk_reward_ratioNo
slashing_risk_pctNo
buffer_absorbs_usdNo
gross_usd_per_yearNo
slash_magnitude_pctNo
not_financial_adviceNo
insurance_makes_senseNo
first_loss_tranche_pctNo
delegator_net_slash_ethNo
delegator_net_slash_usdNo
expected_annual_slash_usdNo
net_apy_risk_adjusted_pctNo
operator_fee_usd_per_yearNo
net_with_insurance_apy_pctNo
insurance_premium_usd_per_yearNo
net_usd_per_year_risk_adjustedNo
net_with_insurance_usd_per_yearNo
insurance_premium_pct_of_rewardsNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is largely covered. The description does add real behavioral context beyond that: deterministic execution, transient input processing ('not stored, logged, or retained'), a synthetic-inputs-only constraint, and export of an AP2 artifact with execution_hash for provenance. These are useful, though the determinism point is stated twice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the title but then spends most of its length on infrastructure detail (compute binding, Workers, FV-status JSON path) rather than the tool's actual behavior. 'OpenChainGraph compute node' and 'Deterministic OpenChainGraph compute node' are redundant, and the FV-status/URL sentence is verbose. It is not bloated enough to be unusable, but several sentences do not serve tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and a nested policy_parameters object whose fields are explicitly undisclosed ('See the tool's manifest for field names'). For a decision/analysis tool with a nested input object and zero required parameters, the description should explain what the decision function computes and what policy fields matter; instead it spends its budget on deployment mechanics. The one genuinely useful completeness detail is the AP2/execution_hash export note.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode sentences essentially duplicate the schema's own compute description, adding no syntax or semantics beyond it, and policy_parameters is deferred to 'the tool's manifest.' Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names a specific resource (restaking delegation and slashing risk), but the description itself never states what the tool actually computes or returns for that risk. Instead it opens with infrastructure boilerplate ('OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node.'), which restates the product context rather than the tool's function. An agent learns nothing about the restaking analysis beyond what the name already says.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no comparison to the many sibling assess_* tools (assess_defi_lending, assess_mar_crypto_surveillance, etc.). The only conditional guidance concerns the compute mode, which is parameter mechanics rather than usage selection. Nothing tells the agent when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_suspect_product_statusDSCSA Suspect/Illegitimate Product Quarantine AssessorC
Read-onlyIdempotent
Inspect

DSCSA Suspect/Illegitimate Product Quarantine Assessor: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-113-saleable-returns-verifier. Open at: https://ainumbers.co/chaingraph/art-114-suspect-product-quarantine.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
required_actionsNo

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description's added value is limited. It does add real behavior beyond annotations — compute mode selection, transient non-retention of inputs, AP2 artifact export with execution_hash, and parent-hash chaining — but all of this is generic node plumbing rather than tool-specific behavior (what triggers a quarantine verdict, what it returns).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening labels the tool correctly, but the rest is padded: compute-mode semantics are explained twice (description and schema), and a long FV-status URL/receipt sentence adds provenance trivia rather than tool guidance. Very little of the length is load-bearing for an agent deciding whether to call it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a compliance assessment with a nested, undefined policy_parameters object and an upstream artifact dependency, yet the description never says what the assessment evaluates, which inputs drive it, or what the verdict means. The output schema spares it from explaining return values, but the core decision semantics are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, so the baseline is 3. The description restates the compute modes that the schema already covers in detail but adds nothing about policy_parameters field names, deferring to 'the tool's manifest.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify the domain (DSCSA suspect/illegitimate product quarantine assessment), but the description body never states what the assessment actually computes or decides. It substitutes infrastructure boilerplate ('OpenChainGraph compute node (compliance_mandate)') for a purpose statement, and gives no differentiation from the many other assess_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions, and no alternatives named. The only routing hint is the upstream dependency ('Consumes upstream artifacts from: art-113-saleable-returns-verifier'), which tells the agent about chaining but not when this tool is the right call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_traiga_exposureTRAIGA Exposure AssessorB
Read-onlyIdempotent
Inspect

TRAIGA Exposure Assessor: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-314-traiga-safe-harbor-pack-builder. Open at: https://ainumbers.co/chaingraph/art-313-traiga-exposure-assessor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cure_window_daysNo
statute_citationNo
traiga_applicableNo
matched_prohibited_usesNo
prohibited_use_detectedNo
penalty_per_violation_usdNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real disclosure beyond them: inputs are processed transiently and not stored, logged, or retained, only synthetic/anonymised inputs should be used, an AP2 artifact with execution_hash is exported for provenance, and gpu:true nodes always delegate to the browser. These are meaningful operational constraints an agent cannot get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose-relevant content is front-loaded, but the paragraph is a run-on that mixes infrastructure, privacy, artifact export, a downstream-feed pointer, a URL, and an FV-status receipt hash. The FV-status sentence in particular is boilerplate that consumes length without helping an agent decide or call correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter node with an output schema, the description covers compute routing, privacy handling, chaining via parent hashes, and the artifact it emits. The main gap is that policy_parameters' actual field semantics are deferred to an external manifest rather than summarized, but the tool is otherwise callable from this definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description merely paraphrases the compute enum (already fully specified in the schema) and says nothing about how policy_parameters fields are determined beyond deferring to 'the tool's manifest'. Baseline 3 is correct when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title say 'TRAIGA Exposure Assessor' and the description labels it a 'deterministic OpenChainGraph compute node (compliance_mandate)', so the agent can infer it computes a TRAIGA exposure metric. However, the body spends most of its length on compute substrate mechanics (server vs browser, GPU delegation, AP2 export) rather than stating what the assessment actually evaluates or returns, and it never distinguishes itself from the dozens of other 'assess_*' siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use statement. The only routing hint is 'Output feeds: art-314-traiga-safe-harbor-pack-builder', which tells the agent where the output goes but not when this tool is the right choice over adjacent compliance assessors. The compute-mode guidance is parameter behavior, not invocation guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_vida_drr_reporting_obligationViDA DRR Transaction ReporterC
Read-onlyIdempotent
Inspect

ViDA DRR Transaction Reporter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-159-vida-einvoice-en16931-conformance-validator. Output feeds: art-161-vida-recapitulative-statement-migration-assessor. Open at: https://ainumbers.co/chaingraph/art-160-vida-drr-transaction-reporter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses genuinely useful behavior: deterministic compute, transient input processing with no storage/logging, server-side vs browser-delegation semantics, and export of an AP2 artifact carrying execution_hash for provenance. It stops short of describing the response payload or any failure modes, but the added behavioral context is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are redundant ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node'), and the trailing FV-status/hash and URL are bulky boilerplate. The compute-mode and transient-processing sentences do earn their place, but the description is padded and front-loads meta-framing rather than the tool's actual function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the burden of explaining what the assessment returns — and it does not. The key input, policy_parameters, is explicitly deferred ('See the tool's manifest for field names'), leaving the agent without the fields needed to invoke the tool meaningfully for a compliance assessment.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented; the description only echoes the compute-mode behavior already present in the schema. It adds no extra meaning for parent_hashes/parent_tool_ids beyond what the schema says, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states in plain terms what the assessment actually determines about ViDA DRR reporting obligations; it opens with infrastructure framing ('OpenChainGraph compute node (compliance_mandate)') that largely restates the title. Sibling tools like assess_vida_recapitulative_migration, run_vida_readiness_diagnostic and validate_vida_einvoice_conformance are not distinguished, so an agent cannot tell from the text what output this produces or how it differs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It documents compute-mode selection (auto/server/browser) and the upstream/downstream artifact chain, which is operational context, but it never says when to choose this assessment versus the many other ViDA tools (recapitulative migration, e-invoice conformance, OSS registration). No prerequisites, no exclusions, no alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_vida_recapitulative_migrationViDA Recapitulative Statement Migration AssessorC
Read-onlyIdempotent
Inspect

ViDA Recapitulative Statement Migration Assessor: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-160-vida-drr-transaction-reporter. Open at: https://ainumbers.co/chaingraph/art-161-vida-recapitulative-statement-migration-assessor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint/idempotentHint true, destructive/openWorld false), the description discloses genuinely useful traits: deterministic execution, server-side vs browser delegation behavior, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash for provenance. These are real operational properties the annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens with a redundant name/title restatement and repeats "Deterministic OpenChainGraph compute node" verbatim, then buries the one domain-relevant fact (upstream artifact) inside infrastructure boilerplate. The wall of compute-binding and FV-status text is not sized to what an agent needs to select the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with a nested policy_parameters object and no output schema, the description omits the core information: what the assessment decides and what fields drive it. It covers compute modes, data handling, and artifact export, but an agent still cannot predict the tool's outcome or how to populate policy_parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description only restates compute-mode semantics that already appear in the schema and defers policy_parameters fields to "the tool's manifest," adding no new parameter meaning. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mostly restates the name and title ("ViDA Recapitulative Statement Migration Assessor: OpenChainGraph compute node") and never explains what a recapitulative-statement migration assessment actually evaluates or returns. It gives no differentiation from close siblings like assess_vida_drr_reporting_obligation, run_vida_readiness_diagnostic, or validate_vida_einvoice_conformance. The only added substance is the upstream artifact reference, which is provenance rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no routing to alternatives among the many vida/assess siblings. The only constraint given ("Use synthetic or anonymised inputs only") is an input-handling rule, not a selection criterion. An agent cannot tell from this text when this tool is the right choice versus run_vida_readiness_diagnostic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attest_bulk_disbursement_integrityBulk Disbursement IntegrityC
Read-onlyIdempotent
Inspect

Bulk Disbursement Integrity: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-518-bulk-disbursement-integrity.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
as_ofNo
currencyNo
rationaleNo
count_breakNo
new_this_runNo
run_referenceNo
limit_breachesNo
absent_this_runNo
rejected_inputsNo
has_limit_breachNo
declared_exclusionsNo
has_roster_movementNo
value_break_displayNo
per_run_limit_breachNo
prior_run_payee_countNo
authorized_payee_countNo
reconciled_record_countNo
value_break_minor_unitsNo
authorized_total_displayNo
control_total_reconciledNo
destination_cap_breachesNo
reconciled_total_displayNo
split_payment_candidatesNo
per_run_limit_minor_unitsNo
has_destination_cap_breachNo
roster_movement_verifiableNo
per_payee_limit_minor_unitsNo
authorized_total_minor_unitsNo
duplicate_candidate_clustersNo
reconciled_total_minor_unitsNo
duplicate_candidate_cluster_countNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the bar is lower, yet the description adds real behavioral context: deterministic execution, transient/not-logged/not-retained input handling, the browser-delegation fallback for gpu:true nodes, and AP2 artifact export with execution_hash. These are non-obvious operational traits the agent could not infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead is a title restatement followed by dense infrastructure boilerplate, a marketing URL, and a 64-character FV-status hash that occupies significant space for little selection value. Much of the text (Cloudflare Workers, kernel registration) is generic to many sibling nodes rather than specific to this tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations carry the safety profile. However, the description never explains what the bulk-disbursement decision function evaluates or what 'integrity' means here, leaving the substantive subject of the computation undefined for a tool with a nested policy_parameters object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself explains compute, parent_hashes, parent_tool_ids and policy_parameters in detail, so the baseline is 3. The description restates the compute modes at a high level but adds no syntax or semantics beyond the schema, and policy_parameters' actual field names are deferred to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (attestation_mandate)' handling 'Bulk Disbursement Integrity,' which names a domain but never states a concrete verb or what is actually computed/attested. It is distinguishable from generic siblings only by the noun phrase, not by any articulated action, and no sibling (e.g. attest_daily_reconciliation, attest_margin_call_lifecycle) is contrasted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a genuine usage constraint — 'Use synthetic or anonymised inputs only' — and an explanation of compute-mode selection. But nothing says when to choose this tool over alternatives or what preconditions make it applicable, which is the core of usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attest_calc_agent_independenceCalculation-Agent Independence AttestationB
Read-onlyIdempotent
Inspect

Calculation-Agent Independence Attestation: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-559-attest-calc-agent-independence.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
trigger_refNo
calc_agent_idNo
disclosure_noteNo
rejected_inputsNo
interested_partiesNo
independence_assertedNo
relationship_declarationNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior. The description adds genuine context beyond that: transient processing with no storage/logging/retention, server-side vs browser delegation semantics, and the AP2 export with execution_hash for chain provenance. This is substantial behavioral disclosure the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core content is front-loaded and dense, but the trailing spec URL and especially the long FV-status file path / hash string are heavyweight boilerplate that contributes little to an agent's decision to call the tool. Some trimming would sharpen it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers the compute routing, privacy posture, chaining inputs, and export artifact. It is nearly complete for a 4-parameter node; the main gap is the absence of any statement about what the attestation validates or its prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter meanings are already fully documented in the schema — the compute enablement, parent_hashes/parent_tool_ids chaining, and policy_parameters are all described there. The description largely restates the compute modes rather than adding meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('Calculation-Agent Independence Attestation') and identifies it as an 'OpenChainGraph compute node (attestation_mandate)', and it says the tool exports an AP2 artifact with execution_hash. But what the attestation actually decides is deferred to 'the tool's manifest', so the substantive purpose is only implied by the name. It does not clearly distinguish itself from close siblings like check_agent_attestation or validate_ap2_mandate_chain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is real usage guidance: 'Use synthetic or anonymised inputs only' and the compute-mode routing rules (auto vs server vs browser, gpu:true delegating). However there is no when-to-use / when-not-to-use guidance relative to the many sibling attestation and validation tools, so routing to this tool still relies on inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attest_daily_reconciliationDaily Reconciliation AttestationC
Read-onlyIdempotent
Inspect

Daily Reconciliation Attestation: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-516-daily-reconciliation-attestation.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond them: transient processing with no storage or logging, compute:'auto' server-side execution on Cloudflare Workers, browser delegation for gpu:true nodes, and AP2 artifact export with execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with infrastructure marketing ('Cloudflare Workers', 'registered kernel', 'deterministic compute node'), a raw spec URL, and an FV-status hash path that consume space without helping an agent decide or call the tool. It is not front-loaded around the actual purpose, and the useful artifact-export fact is buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should have explained the attestation result more fully, but beyond 'execution_hash' it never says what artifact fields or reconciliation assertions are produced. It also never describes what policy_parameters should contain for a daily reconciliation attestation, leaving the core domain semantics unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including a detailed enum explanation for 'compute', so the schema already carries parameter semantics. The description repeats the compute-mode rules and says nothing about parent_hashes, parent_tool_ids, or the meaning of policy_parameters fields, so it adds no value beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentences largely restate the title and label the tool a 'deterministic OpenChainGraph compute node (attestation_mandate)', which does not state what daily reconciliation is actually being attested. The mention of exporting an AP2 artifact with execution_hash gives a hint of output, but the substantive decision function is never described, and nothing distinguishes it from the many sibling attest_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is a data-handling constraint ('Use synthetic or anonymised inputs only'), not when this tool should be chosen over alternatives. With ~150 siblings including attest_bulk_disbursement_integrity, attest_calc_agent_independence, and attest_margin_call_lifecycle, the absence of any routing guidance is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attest_margin_call_lifecycleMember Margin Call LifecycleC
Read-onlyIdempotent
Inspect

Member Margin Call Lifecycle: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-531-member-margin-call-lifecycle.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint:false, and openWorldHint:false, so the safety profile is covered. Beyond that, the description adds meaningful behavioral context: compute-mode delegation rules, transient input processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a title but then repeats itself ('OpenChainGraph compute node. Deterministic OpenChainGraph compute node.') and appends a long FV-status hash and URL that read like boilerplate rather than essential selection guidance. Several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, chained compute/attestation tool with a nested policy_parameters object and no output schema, the description covers compute modes, data handling, and artifact export but leaves the actual decision function, expected artifact structure, and policy_parameters field names unspecified. Annotations and top-level parameter descriptions fill some gaps, but the core operational detail remains thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats the compute-mode semantics already documented in the schema property description and adds no field-level meaning for parent_hashes, parent_tool_ids, or policy_parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node in the 'attestation_mandate' family and names the resource 'Member Margin Call Lifecycle', but it never states a concrete operation (e.g., 'attests', 'validates', 'computes') beyond generic 'compute node'. It also does not distinguish this tool from the many sibling compute and margin-related tools in the list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, nor are alternative tools named. The only constraint offered is an input-handling rule ('Use synthetic or anonymised inputs only'), which is not a usage-selection guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_acp_ucp_product_feedACP/UCP Product-Feed Conformance AuditorB
Read-onlyIdempotent
Inspect

ACP/UCP Product-Feed Conformance Auditor: OpenChainGraph compute node (scheme_rule). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-19-agentic-checkout-protocol-selector. Output feeds: art-21-agent-traffic-acceptance-policy-builder, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-20-acp-ucp-product-feed-conformance-auditor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
warningsNo
audit_targetNo
payload_typeNo
critical_gapsNo
conformance_scoresNo
acp_missing_requiredNo
ucp_missing_requiredNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses real behavioral traits: compute routing (auto/server/browser, browser delegation URL, gpu:true always delegates), transient processing with no storage/logging, a synthetic-inputs-only requirement, and AP2 artifact export with execution_hash. This is meaningful context the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and mixes purpose, compute binding, privacy, chaining, links, and a receipt URL into one block with some redundancy ('OpenChainGraph compute node' restated as 'Deterministic OpenChainGraph compute node'). Front-loading is present but the purpose is buried under infrastructure language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a full schema, and an output schema present, the description covers the remaining gaps well: compute modes, privacy posture, chaining inputs/outputs, and provenance artifact. An agent has enough to invoke it correctly, though the core conformance-audit semantics remain under-described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description reinforces compute-mode semantics and chaining intent but adds no syntax or field-level detail beyond the schema, so the 3 baseline applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool as an 'OpenChainGraph compute node (scheme_rule)' and repeats the title, but never plainly states the auditing verb+resource (it audits ACP/UCP product feeds for conformance). The purpose is inferable from the name and title but the prose itself leans on infrastructure jargon rather than a clear operational statement, and it does nothing to distinguish it from protocol-selection siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no naming of alternatives among the many comparison/selection siblings. The 'Consumes upstream... Output feeds...' lines imply a pipeline position but give no condition telling an agent when this audit is the right call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_agent_key_rotationAgent Key Rotation AuditorC
Read-onlyIdempotent
Inspect

Agent Key Rotation Auditor: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-133-agent-payment-rail-trust-crosswalk. Open at: https://ainumbers.co/chaingraph/art-132-agent-key-rotation-auditor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. Beyond that the description adds genuinely useful behavioral context: deterministic server-side computation, 'auto' vs 'browser' delegation semantics, transient input processing with no storage/logging/retention, a synthetic-input-only requirement, and AP2 artifact export with execution_hash. These go beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure boilerplate (OpenChainGraph node, Cloudflare Workers, FV-status receipt URL and long hash) that crowds out the actual tool purpose. The most actionable output information ('Output feeds: art-133...') is buried near the end. It is verbose and poorly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four parameters, a nested policy_parameters object, and no output schema, the description should explain the decision inputs and return shape. It partially covers returns (AP2 artifact with execution_hash) but deflects the core inputs to 'See the tool's manifest', leaving the audit's decision fields opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description only echoes the compute-mode semantics that the schema already states and adds nothing about chaining parameters. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title 'Agent Key Rotation Auditor' is restated rather than elaborated, and the opening sentence leads with compute-node infrastructure rather than the audit itself. There is a hint of output purpose ('Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-133-agent-payment-rail-trust-crosswalk'), but what the auditor actually checks regarding key rotation is never stated. An agent can guess the domain but not the specific operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute modes (server vs browser) but gives no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of related siblings such as audit_mcp_oauth or check_agent_attestation. Usage context is implied by the title only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_mcp_oauthMCP OAuth 2.1 Authorization AuditorA
Read-onlyIdempotent
Inspect

Audit MCP OAuth 2.1 authorization: validate RFC 9728 protected-resource-metadata, check RFC 8707 audience binding, and assess token-passthrough / confused-deputy risk. Use when a developer is securing an MCP server's authorization. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
findingsNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly and idempotent. The description adds critical context: runs client-side, zero PII, zero network, renders interactive widget. This goes well beyond annotations, providing full disclosure of behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two densely informative sentences with no wasted words. Front-loaded with the purpose, then usage, then behavioral details. Perfect structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage, behavioral traits, and parameter semantics. Output schema exists so return values need not be described. A minor gap: the term 'AINumbers tool' is not explained, but given the sibling 'list_ainumbers_tools', it's likely known. Overall very complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; baseline 3. The description adds meaning by explaining that inputs come from the manifest input_schema and are applied via AIN Bridge prefill, clarifying the parameter's role beyond the schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states specific RFC validations (9728, 8707) and risk assessment (token-passthrough/confused-deputy), clearly distinguishing it from siblings like 'audit_mcp_tool_scope_revocation' and 'validate_mcp_authorization_metadata'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use when a developer is securing an MCP server's authorization,' providing clear context. Could be stronger by explicitly noting when not to use it or comparing to related siblings, but the guidance is effective.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_mcp_tool_scope_revocationMCP Tool Scope & Revocation AuditorC
Read-onlyIdempotent
Inspect

MCP Tool Scope & Revocation Auditor: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-151-agent-obo-mandate-validator. Open at: https://ainumbers.co/chaingraph/art-150-mcp-tool-scope-revocation-auditor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
revocableNo
scopes_okNo
audit_passNo
rotation_okNo
token_age_sNo
ungated_toolsNo

TDQS

C2.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint/destructiveHint already declared, the description still adds genuine behavioral context: inputs are processed transiently and not stored or retained, synthetic/anonymised inputs are required, gpu:true nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for chain provenance. The no-retention and synthetic-input-only notes are real operational constraints not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure boilerplate (compute binding rules, FV-status file name, 'snapshot not a subscription' caveat) while the tool's actual decision logic is absent. It is not front-loaded around the task — the single sentence most useful to an agent ('Use synthetic or anonymised inputs only') is buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but the description omits what an agent most needs: the semantics of the free-form policy_parameters object and what the audit returns conceptually. It references 'the tool's manifest' as an external document that is never provided, leaving the decision function opaque for a 4-parameter compliance tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents compute, parent_hashes, parent_tool_ids and policy_parameters; the compute enum is explained equally well in both places. The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies. Its pointer to 'the tool's manifest for field names' is unhelpful without a manifest link.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Beyond the name/title, the description never states what the audit actually decides — what 'tool scope' and 'revocation' are checked for, or what verdict is produced. Instead it spends its words on infra boilerplate ('OpenChainGraph compute node', FV-status JSON path), which is tautological restatement rather than a purpose. An agent cannot tell from the text how this differs from siblings like audit_mcp_oauth or check_agent_token_scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to invoke this auditor versus the many other MCP/compliance audit tools in the catalog. The only conditional language is about compute mode routing (auto/server/browser), which is an execution detail, not a use-case rule. No prerequisites, no exclusions, no alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

baas_provider_comparatorBaaS Provider ComparatorA
Read-onlyIdempotent
Inspect

Score and compare BaaS providers across 10 capability dimensions (regulatory standing, programme management, card issuance, rails, KYC/KYB, disputes, developer experience, pricing, FDIC pass-through, compliance tooling) with a user-adjustable 1-5 weighting matrix. Outputs a weighted comparison matrix and Markdown evaluation memo. Browser-based, client-side only, zero PII. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral context: browser-based, client-side only, zero PII, zero network, and renders the AINumbers widget. This goes beyond annotations and fully discloses execution environment and privacy characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with purpose and dimensions, and each sentence earns its place. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool's complexity (10 dimensions, weighting matrix, client-side execution), the description covers purpose, dimensions, output (weighted comparison matrix and Markdown memo), execution environment, privacy, and integration details. With an output schema present, the description is fully adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'inputs', with a description that explains it is a map of input element IDs to values. The tool description adds context about how inputs are applied via AIN Bridge prefill, which enhances understanding of the parameter's role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Score and compare BaaS providers across 10 capability dimensions' with a specific verb ('score and compare') and resource ('BaaS providers'). It distinguishes from sibling tools implicitly as the only BaaS-specific comparator among many general comparison tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates when to use (when comparing BaaS providers) but does not explicitly exclude alternatives or provide context for when not to use it. The context is clear but lacks exclusions or comparisons to similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

benchmark_tp_interquartile_rangeTransfer-Pricing Interquartile Range BenchmarkB
Read-onlyIdempotent
Inspect

Transfer-Pricing Interquartile Range Benchmark: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-472-cbcr-builder. Open at: https://ainumbers.co/chaingraph/art-473-interquartile-benchmark.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
q1No
q3No
iqrNo
medianNo
ratio_suiteNo
range_verdictNo
missing_inputsNo
comparable_countNo
tested_party_ratioNo
sorted_comparable_ratiosNo
not_a_comparable_selectorNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint already covering safety, the description adds meaningful behavior: transient processing with no storage, logging, or retention; server-vs-browser/gpu delegation logic; and an exported AP2 artifact carrying execution_hash for chain provenance. It doesn't describe error modes or result shape, but the data-handling and provenance disclosures go well beyond what annotations supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence front-loads the identity, but the body is a dense run-on mixing compute semantics, data-retention policy, artifact export, an upstream ID, a URL, and a 64-character hash path. Several elements (full FV-status hash, snapshot caveat) are low-value for tool selection and dilute the actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description still supplies the provenance chain, input-handling policy, and compute-mode behavior an agent needs to call this correctly. The one gap is that it never characterizes what the benchmark result represents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema, including the compute enum's auto/server/browser semantics. The description's compute-mode explanation largely repeats the schema and adds no field-level meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph 'compute node (compliance_mandate)' and the title names the benchmark, but it never explains what the interquartile-range computation actually produces or how it differs from the dozens of sibling compute_* nodes. The verb is essentially 'compute' with no resource-level detail beyond the title's restatement, leaving the agent to infer the tool's real function from metadata rather than the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides situational constraints — 'Use synthetic or anonymised inputs only' and the upstream dependency on art-472-cbcr-builder — plus a compute-mode decision rule (auto/server/browser). However, it never states when to choose this node over alternatives like build_cbcr_report or other transfer-pricing tools, so routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bind_agreement_acceptanceAgreement Acceptance BinderB
Read-onlyIdempotent
Inspect

Agreement Acceptance Binder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-276-mutual-nda-composer. Open at: https://ainumbers.co/chaingraph/art-277-agreement-acceptance-binder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
disclaimerNo
zero_pii_noticeNo
previous_proof_hashNo
acceptance_statementNo
accepted_body_sha256No
accepted_template_idNo
accepting_party_roleNo
referenced_execution_hashNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses meaningful behavior: server-side vs browser execution and the delegation URL, that gpu:true nodes always delegate, that inputs are transient and not logged or retained, and that output carries an execution_hash for provenance. This is exactly the kind of context annotations cannot convey, though the export/return semantics could be sharper.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identity is front-loaded, but the opening is redundant ('OpenChainGraph compute node' immediately restated as 'Deterministic OpenChainGraph compute node') and the FV-status/persistence boilerplate is verbose. Every sentence is informational, yet the block is denser than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, annotations covering the safety profile, and 100% schema coverage, the description only needs to close the gaps around execution model, privacy, and chaining — which it does. It is largely sufficient to invoke the tool correctly, missing only explicit sibling-selection rationale.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description reiterates the compute mode behavior and hints that parent_hashes chain from upstream artifacts, but adds little syntax or format detail beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node (compliance_mandate) and states it exports an AP2 artifact with execution_hash, but it never plainly says what 'binding agreement acceptance' actually computes. Much of the text describes the compute substrate rather than the specific verb+resource, and the title largely restates the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives implicit workflow context by naming the upstream producer (art-276-mutual-nda-composer) and the required synthetic inputs, guiding the agent toward the chaining pattern. However, it never states when to choose this tool over the many sibling binder/assembler tools, so selection guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bind_attested_subjectAttested Artifact Subject BinderC
Read-onlyIdempotent
Inspect

Attested Artifact Subject Binder: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-502-bind-attested-subject.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
findingsNo
rationaleNo
subject_hashNo
producer_pinnedNo
binding_completeNo
subject_preimageNo
no_arithmetic_claimNo
inputs_digest_sourceNo
preimage_member_countNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, non-destructive and closed-world, so the safety profile is known. The description adds genuinely new behavioral context: transient processing with no storage/logging, deterministic server-side vs browser delegation, and export of an AP2 artifact with execution_hash. That is real value, but the core computational behavior remains undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by boilerplate: repeated 'compute node' phrasing, a marketing URL, and a long FV-status hash that no agent can act on. The actual purpose sentence is crowded out by provenance ceremony, so the structure is not front-loaded on what matters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and that is respected. However, for a tool whose whole point is a decision function, the description defers field names to an external manifest and never says what subject is being bound or what attestation is being checked. An agent cannot safely invoke it from this text alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four properties (compute, parent_hashes, parent_tool_ids, policy_parameters) are documented in the schema itself. The description repeats the compute-mode semantics but adds nothing about policy_parameters or the chaining parameters. Baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what 'binding an attested subject' actually computes. It restates the name in the first clause, then pivots to infrastructure metadata (compute modes, privacy, provenance URL) rather than a specific verb+resource with scope. Against hundreds of near-neighbour siblings like bind_agreement_acceptance or emit_chaingraph_artifact, nothing lets an agent tell this tool apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers operational guidance on compute mode (auto/server/browser) and warns to use synthetic inputs, which is useful. But it gives no guidance on when to choose this tool over alternatives and no prerequisites or exclusions. The 'when to use' dimension is essentially absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_226j_response_evidence_pack226J Response Evidence Pack BuilderC
Read-onlyIdempotent
Inspect

226J Response Evidence Pack Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-299-aca-esrp-exposure. Open at: https://ainumbers.co/chaingraph/art-300-aca-226j-response-evidence-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
attestationNo
letter_dateNo
exposure_deltaNo
response_deadlineNo
response_window_daysNo
response_window_sourceNo
disputed_employee_countNo
irs_asserted_esrp_annualNo
recomputed_exposure_annualNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, and closed-world traits, yet the description meaningfully adds that inputs are processed transiently and not stored, logged, or retained, that only synthetic/anonymised inputs should be used, and that it exports an AP2 artifact carrying execution_hash. Those are genuine behavioral facts beyond the annotation set, though chain/parent-linking side effects are only implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening two sentences are redundant ('compute node (compliance_mandate). Deterministic OpenChainGraph compute node'), and the actual purpose is buried under provenance and FV-status URL boilerplate. The critical retention/synthetic-input constraint appears mid-text rather than being front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description does disclose compute routing, transient processing, and upstream artifact consumption. However, for a node whose decision function takes policy_parameters, the description offloads field names to an unreachable manifest, leaving the agent without enough to actually populate the core input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds some value by naming the upstream artifact source (art-299-aca-esrp-exposure) that supplies parent_hashes and by describing the execution_hash-to-chain.parent_hashes linkage, but compute modes merely repeat the schema and policy_parameters fields are deferred to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and first clause state it builds a 226J Response Evidence Pack, so the verb+resource is identifiable, but the description never explains what a 226J evidence pack contains or how it differs from the many sibling builders (build_evidence_pack, build_agent_test_evidence, assemble_ocg_evidence_bundle). Most of the text is framework boilerplate rather than purpose definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternative evidence-pack or compliance-mandate builders. The compute-mode discussion (auto/server/browser) explains execution routing, not when this tool is the right selection, and no prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_adverse_action_noticeBuild Adverse Action NoticeB
Read-onlyIdempotent
Inspect

Build Adverse Action Notice: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-227-validate-adverse-action-notice. Open at: https://ainumbers.co/chaingraph/art-228-build-adverse-action-notice.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
table_sourceNo
table_versionNo
notice_sectionsNo
receipt_metadataNo
regulatory_basisNo
resolved_reasonsNo
compliance_flags_raisedNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description adds genuinely useful behavior: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs are required, and it exports an AP2 artifact with execution_hash for chain provenance. It does not, however, explain failure modes or the delegation-url lifecycle in depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the text is a dense boilerplate dump that repeats compute-mode semantics already in the schema and embeds a long FV-status URL and hash. Several sentences do not earn their place for an agent trying to decide whether and how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a full output schema, and 100% schema coverage, the description only needs to add context, and it does supply the export artifact and downstream consumer. It remains incomplete on the actual decision function and required policy_parameters, which are deferred to an external manifest the agent cannot see here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, and the description's compute-mode text largely restates the schema's own enum description. The only added note is that policy_parameters field names live in the tool's manifest, which is marginal additional value; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title give a clear verb+resource ('build adverse action notice') and the description identifies the tool as a compliance_mandate compute node that exports an AP2 artifact. However, it never explains what an adverse action notice actually is or what the node computes, and it does not meaningfully differentiate itself from the many sibling build_* tools beyond naming the downstream validator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the pipeline hint ('Output feeds: art-227-validate-adverse-action-notice') and the compute-mode guidance (auto/server/browser, gpu:true always delegates). There is no explicit statement of when to choose this tool over alternatives or any prerequisite conditions, so guidance is only inferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_agent_incident_recordAgent Incident Record ComposerC
Read-onlyIdempotent
Inspect

Agent Incident Record Composer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-379-agent-incident-record-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
incidentNo
record_noteNo
remediationNo
cross_linkedNo
mandate_hashNo
agent_identityNo
evidence_countNo
session_evidenceNo
escalation_cross_linkNo
record_claim_strengthNo
invalid_evidence_countNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, yet the description adds real context: inputs are processed transiently and not stored/logged/retained, the compute mode routing rules, and that output is an AP2 artifact with execution_hash. It also discloses the FV-status as an offline-verifiable snapshot. This is meaningful behavior beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with boilerplate: 'OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node' repeats itself, and the trailing FV-status URL sentence consumes substantial space for marginal agent value. Front-loading of the actual purpose is weak because infrastructure jargon comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the params are fully schema-covered, so the mechanics are adequately covered. However, for a compliance-mandate node that composes an incident record, the description omits the domain context (what the record captures, when it is required) that an agent would need to select it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute explanation largely restates the enum semantics already in the schema, and it adds no field-level meaning for the parent_* chaining or policy_parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title identify the resource (an agent incident record) and the verb (build/compose), but the description itself spends almost all of its text on OpenChainGraph compute plumbing rather than explaining what an incident record is or what building one accomplishes. The one substantive clause, 'Exports an AP2 artifact with execution_hash for chain provenance,' hints at output but doesn't differentiate it from siblings like build_idv_verification_incident_record. Purpose is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many other build_* / incident-record siblings. The description explains compute modes ('auto'/'server'/'browser') but that is invocation mechanics, not usage selection. 'Use synthetic or anonymised inputs only' is a constraint, not when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_agent_test_evidenceQuarterly Agent Test Evidence ComposerC
Read-onlyIdempotent
Inspect

Quarterly Agent Test Evidence Composer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-378-quarterly-test-evidence-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
suiteNo
totalNo
passedNo
quarterNo
per_testNo
pass_rateNo
regressionNo
aiuc_versionNo
chain_intactNo
prior_quarterNo
tamper_detectedNo
certification_noteNo
pack_claim_strengthNo
declared_prior_pack_digestNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds genuinely useful behavior beyond them: transient processing with no storage or logging, the compute:'auto'/'browser'/'server' execution semantics and browser delegation, and deterministic re-computation. It does not contradict the read-only annotations. Minor gap: no note on failure modes or what the artifact is verified against.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is redundant padding ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'), and the URL plus raw FV-status hash trail the text with high-token, low-signal content. The actual capability (AP2 artifact export) is buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% parameter coverage, the description need not explain return values, and it does cover execution model and data handling. However, it tells the agent nothing about what policy_parameters should contain beyond deferring to 'the tool's manifest,' which is unavailable at call time, leaving a real gap for a tool with a free-form nested object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode explanation duplicates the schema's own enum documentation (including the gpu:true delegation rule) and adds no format or ordering detail (e.g., that parent_tool_ids must align index-wise with parent_hashes). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Quarterly Agent Test Evidence Composer') and labels itself a 'deterministic OpenChainGraph compute node', which is close to tautology, but it does add one concrete purpose signal: it 'Exports an AP2 artifact with execution_hash for chain provenance.' It never distinguishes this tool from near siblings such as compose_control_test_evidence or assemble_ocg_evidence_bundle, so an agent must infer the scope from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no comparison to alternatives among the many evidence/compose siblings. The only usage-flavored sentence is a constraint ('Use synthetic or anonymised inputs only'), which is a data-handling rule, not a routing rule. An agent cannot tell from this text when to pick this composer over the others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_agent_traffic_policyAgent-Traffic Acceptance Policy BuilderC
Read-onlyIdempotent
Inspect

Agent-Traffic Acceptance Policy Builder: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-20-acp-ucp-product-feed-conformance-auditor. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-21-agent-traffic-acceptance-policy-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
block_rulesNo
overall_riskNo
retry_policyNo
max_tx_per_dayNo
max_tx_per_minNo
refund_postureNo
guardrail_passesNo
guardrail_findingsNo
guardrail_warningsNo
verification_levelNo
max_daily_spend_usdNo
accepted_agent_typesNo
accepted_payment_railsNo
max_single_transaction_usdNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new behavioral facts: deterministic server-side vs browser compute modes, that inputs are processed transiently and not stored/logged, and a 'use synthetic or anonymised inputs only' constraint. This is meaningful disclosure beyond the annotations, though return-format and chain-failure behavior are not covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description opens with repetitive boilerplate ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and closes with an irrelevant documentation URL and an FV-status receipt hash that occupy space without helping an agent invoke the tool. The useful compute-mode and data-handling sentences are not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and parameters are fully covered by the schema. However, for a tool whose core value is a policy decision function, the description never indicates what policy_parameters should contain or what the acceptance policy evaluates, leaving the agent to consult an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute modes, parent_hashes/parent_tool_ids ordering, and policy_parameters. The description adds little parameter meaning, deferring field names to 'the tool's manifest', so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names the resource (Agent-Traffic Acceptance Policy Builder) and the description says it 'Exports an AP2 artifact with execution_hash for chain provenance', but the actual purpose is buried under OpenChainGraph infrastructure boilerplate (compute node, kernel registration, delegation URLs). It never says what the policy decision contains or which sibling builders it differs from, and it is not distinguished from ap2_aml_mandate_builder or build_ap2_cartmandate_hashchain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance. The only routing signal is indirect pipeline placement ('Consumes upstream artifacts from: art-20...', 'Output feeds: ptg-01...'), which implies position in a chain but does not tell an agent when to call this instead of another AP2 builder.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_ai_conformity_packAI Act Conformity Pack BuilderA
Read-onlyIdempotent
Inspect

AI Act Conformity Pack Builder: OpenChainGraph compute node (model_governance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-64-ai-act-highrisk-fit-diagnostic. Output feeds: 333-eu-ai-act-article9-risk-mgmt-builder, art-05-eu-ai-act-credit-scoring-conformity, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-65-ai-conformity-pack-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
systemNo
ce_readyNo
annex_iv_gapsNo
annex_iv_gradeNo
annex_iv_scoreNo
articles_statusNo
conformity_gradeNo
conformity_routeNo
ce_readiness_noteNo
applicable_date_noteNo
conformity_route_noteNo
declaration_of_conformity_skeletonNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely new behavioral facts: determinism, transient non-retained input processing, an execution_hash for chain provenance, and an offline-verifiable FV-status receipt. These go meaningfully beyond the annotation surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the compute/provenance behavior, but wastes space on redundancy ('OpenChainGraph compute node' stated twice) and a verbose FV-status sentence with a long hash. The core routing and constraint information could be stated in fewer sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and all params optional, the description covers what an agent needs: execution mode, input-handling constraints, provenance linkage, and the artifact produced. Coverage is good, with only the sibling-selection question left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters including the compute enum. The description restates the compute-mode behavior but adds little for parent_hashes, parent_tool_ids, or policy_parameters. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb+resource (builds an 'AI Act Conformity Pack' artifact) and frames it as a deterministic OpenChainGraph compute node with an AP2 export. It also names upstream and downstream artifacts, which grounds the tool's role. It does not, however, explicitly distinguish itself from near siblings like assess_ai_act_conformity or assemble_aiuc1_evidence_pack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a hard input constraint ('use synthetic or anonymised inputs only') and explains the compute modes, which implies when a browser delegation is triggered. But it never states when to choose this tool over its many AI-Act siblings, so usage is only partially guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_ai_decision_log_recordAI Decision Log Record Builder (EU AI Act Art 12)B
Read-onlyIdempotent
Inspect

AI Decision Log Record Builder (EU AI Act Art 12): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-237-validate-agent-audit-trail, art-238-classify-annex3-decisioning-obligations. Open at: https://ainumbers.co/chaingraph/art-236-build-ai-decision-log-record.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
model_idNo
pii_noteNo
confidenceNo
operator_idNo
override_byNo
subject_refNo
anchor_toolsNo
input_digestNo
model_versionNo
output_digestNo
override_flagNo
record_statusNo
table_versionNo
anchor_surfaceNo
chain_positionNo
decision_labelNo
system_contextNo
regulatory_basisNo
retention_monthsNo
enforcement_datesNo
sha256_prev_recordNo
art12_fields_presentNo
missing_art12_fieldsNo
art12_completeness_scoreNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely non-redundant behavior: inputs are processed transiently and 'not stored, logged, or retained', compute:'browser' returns a delegation URL, gpu:true nodes always delegate, and the export is an AP2 artifact carrying execution_hash for chain provenance. That is real disclosure beyond structured fields, though return shape specifics are left to the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The regulatory/compute framing is front-loaded and useful, but the text is dense with boilerplate: 'OpenChainGraph compute node' is effectively stated twice, and a 64-character FV-status hash plus URL are embedded inline. The trailing receipt sentence ('a snapshot, not a subscription...') is verbose relative to its value. Mid-sized, some waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists (return-value explanation is unnecessary) and all four parameters are documented in the schema, the description covers the remaining gaps well: compute-mode selection, data-handling guarantees, provenance export, and downstream chaining. An agent has enough to invoke it correctly; only the absence of explicit sibling routing keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute's enum semantics, parent_hashes, parent_tool_ids and policy_parameters — baseline 3. The description re-explains the compute modes (largely duplicating the schema) and points to 'the tool's manifest for field names' for policy_parameters, which is a mild pointer rather than added semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title supplies a specific verb+resource (build an AI decision log record, EU AI Act Art 12), but the description body never states that purpose directly — it opens with infrastructure framing ('OpenChainGraph compute node (compliance_mandate)') and explains compute routing rather than what the record captures. It does distinguish itself downstream by naming the two consumer tools (art-237-validate-agent-audit-trail, art-238-classify-annex3-decisioning-obligations), which helps an agent place it. Adequate but the core purpose is only inferable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete usage constraints — 'Use synthetic or anonymised inputs only' and when to pick compute:'auto' vs 'browser' — and names the downstream consumers, which implies context. But it never says when to use this record builder versus nearby siblings like build_ai_workpaper_record or build_ai_training_data_lineage_record, and there are no explicit exclusions. Implied usage rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_ai_training_data_lineage_recordAI Training-Data Lineage RecordB
Read-onlyIdempotent
Inspect

AI Training-Data Lineage Record: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-452-build-ai-training-data-lineage-record.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
dataset_idNo
scope_noteNo
operator_idNo
record_statusNo
table_versionNo
chain_positionNo
dataset_versionNo
zero_pii_noticeNo
governance_notesNo
regulatory_basisNo
retention_monthsNo
collection_methodNo
referenced_receiptNo
source_dataset_idsNo
sha256_prev_lineage_hashNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive safety, and the description adds genuinely new context beyond them: inputs are processed transiently and never stored, logged, or retained; synthetic/anonymised inputs are required; and compute offloads server-side or returns a browser delegation URL. These are real behavioral disclosures not present in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately sized and leads with the purpose, but it carries promotional/boilerplate noise — the spec URL and the FV-status hash receipt explanation — that consumes space without helping an agent decide or invoke. Sentences do not all earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the safety profile, the main remaining ambiguity is what the node actually computes, which the description leaves vague. Data-handling and compute-mode context are supplied, but the nature of the produced lineage record is not, leaving a gap for a compliance compute node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters. The description's explanation of auto/server/browser modes duplicates the compute parameter's own schema text and adds nothing for parent_hashes, parent_tool_ids, or policy_parameters, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (compliance_mandate)' and states it exports an AP2 artifact with an execution_hash. However, the core purpose is largely a restatement of the name/title — it never states plainly what lineage record is being built or from what inputs, and it does not distinguish this from close siblings like build_ai_decision_log_record, build_ai_workpaper_record, or record_model_input_lineage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. The compute-mode discussion is parameter behavior, not usage context, and no sibling tool is named as the alternative for related lineage/record tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_ai_workpaper_recordAI-Tool-Usage Workpaper RecordB
Read-onlyIdempotent
Inspect

AI-Tool-Usage Workpaper Record: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-380-build-ai-workpaper-record.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
sign_offNo
disclaimerNo
engagementNo
limitationsNo
tool_identityNo
zero_pii_noticeNo
evidence_bindingNo
previous_workpaper_hashNo
documentation_standard_refNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely new behavioral facts: inputs are processed transiently and never stored, logged, or retained; synthetic/anonymised inputs are required; output is an AP2 artifact with execution_hash for chain provenance; gpu:true nodes always delegate to the browser. Those are real operational constraints not present in the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core compute/privacy content is front-loaded and dense, but the compute-mode explanation duplicates the schema, and the trailing URL plus FV-status receipt/hash sentence is long and only marginally actionable for tool selection. Roughly two of the sentences could be trimmed without losing guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and chaining via parent_hashes/parent_tool_ids is covered by the schema. However, for a workpaper-record builder the description never explains what the workpaper actually captures or what policy_parameters the decision function expects, leaving a gap that the pointer to 'the tool's manifest' does not close.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail — including the compute enum semantics the description restates. The description adds no extra meaning for policy_parameters beyond pointing to 'the tool's manifest', so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description frames the tool as an 'OpenChainGraph compute node (compliance_mandate)' and says it exports an AP2 artifact with execution_hash, but never states plainly that it builds an AI-tool-usage workpaper record — that intent lives only in the title. An agent can infer it is a deterministic builder that emits a provenance artifact, but the verb+resource are muddled by infrastructure jargon rather than a clear 'build X record from Y'. Sibling discrimination comes only from the name, not the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only when-to-use guidance concerns the compute parameter ('auto' vs 'browser' vs gpu:true delegation), not when to call this tool versus alternatives like build_ai_decision_log_record or compose_workpaper_bundle. Nothing tells the agent what triggers this tool, what prerequisites it has, or when another sibling is the better choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_allocation_decision_receiptBuild Allocation Decision ReceiptA
Read-onlyIdempotent
Inspect

Build Allocation Decision Receipt: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-515-build-allocation-decision-receipt.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofNo
deltaNo
fenceNo
roundingNo
objectiveNo
rationaleNo
exceptionsNo
not_provenNo
obligationNo
inventory_refNo
obligation_refNo
reproducibilityNo
judgment_requiredNo
binding_constraintsNo
haircut_table_versionNo
eligibility_schedule_refNo

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare the safe read-only/idempotent profile, and the description adds substantial behavior beyond that: server-side vs client-side compute selection, GPU delegation, transient processing with no storage/logging/retention, synthetic-input requirement, and emission of an AP2 artifact with execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the compute semantics, but the opening restates the title verbatim ('Build Allocation Decision Receipt:') and the trailing spec URL / fv-status hash text is dense and partly boilerplate. Informative but with noticeable redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema already covers return values, the description is complete enough: it explains compute behavior, data handling, and the artifact output. Only the absence of sibling routing guidance leaves a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's mention of compute:"auto" vs "browser" largely repeats the schema, adding no new parameter syntax or format detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (build an Allocation Decision Receipt) and identifies its type as an OpenChainGraph attestation_mandate compute node. It is clear on its own, but does not explicitly distinguish itself from the many sibling build_* receipt tools (e.g. build_ap2_cartmandate_hashchain, emit_chaingraph_artifact).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains compute-mode behavior (auto/server/browser) but gives no explicit when-to-use guidance or naming of alternative tools for the same task. Usage is implied by the 'attestation_mandate' framing rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_amortization_scheduleAmortization Schedule BuilderC
Read-onlyIdempotent
Inspect

Amortization Schedule Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-215-reg-z-appendix-j-apr. Open at: https://ainumbers.co/chaingraph/art-332-build-amortization-schedule.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
totalsNo
advancesNo
odd_daysNo
paymentsNo
scheduleNo
loan_amountNo
num_paymentsNo
note_rate_pctNo
schedule_typeNo
payment_amountNo
periods_per_yearNo
regulatory_basisNo
unit_period_daysNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, and the description still adds real behavioral context: inputs are processed transiently and not stored or retained, synthetic inputs only, and the output is a deterministic AP2 artifact carrying execution_hash for chain provenance. It omits error behavior and the latency/async profile of browser delegation, but this is solid added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode explanation duplicates the schema's own parameter description verbatim in substance, and the trailing FV-status sentence is a long, low-signal URL/receipt string. Space that should carry tool purpose is spent on infra boilerplate, although the first sentence does identify the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and compute-mode behavior is covered. However, policy_parameters is the actual decision payload and the description/nested schema defer entirely to an external manifest for field names, leaving an agent without field-level guidance for a 4-parameter node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, and the description largely repeats the compute-mode semantics already in the schema. It adds nothing about how parent_hashes and parent_tool_ids must be ordered/pairwise, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never explains what an amortization schedule is or what this tool computes; it restates the name via the title and then spends its length on execution-environment metadata (Cloudflare Workers, kernel registration). The only hints at domain purpose are indirect ('Output feeds: art-215-reg-z-appendix-j-apr', 'compliance_mandate'). It does not distinguish itself from siblings such as compute_deterministic_amortization_schedule or compute_reg_z_appendix_j_apr.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the compute-mode enum ('auto'/'server'/'browser') which is a usage rule for one parameter, but gives no guidance on when to choose this tool over the many sibling compute/amortization/APR tools. No prerequisites, no when-not-to-use, no alternative named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_ap2_cartmandate_hashchainAP2 CartMandate Hash-Chain BuilderB
Read-onlyIdempotent
Inspect

AP2 CartMandate Hash-Chain Builder: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-596-ap2-x402-cart-correlation. Open at: https://ainumbers.co/chaingraph/art-595-ap2-cartmandate-hashchain-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
vdcNo
noteNo
reasonsNo
vdc_typeNo
cart_rootNo
chain_linksNo
chain_lengthNo
cart_chain_intactNo
first_divergent_indexNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses meaningful behavior: inputs are processed transiently and not stored/logged/retained, browser mode returns a delegation URL instead of a result, and gpu:true nodes always delegate. This is solid added context, though it does not describe failure modes or how chaining conflicts are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core content is front-loaded, but the description is a dense run-on that mixes compute-mode boilerplate, a long URL, and a verbose FV-status hash sentence that adds little selection value for an agent. Several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter coverage, the description supplies the remaining essentials: data-handling policy, compute delegation semantics, and the downstream artifact link. It is nearly complete for a deterministic compute node, missing only explicit guidance on when this node is the right choice.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters thoroughly. The description only restates the compute-mode semantics and adds nothing new about the chaining parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific verb-and-resource ('Exports an AP2 artifact with execution_hash for chain provenance') and names the downstream consumer ('Output feeds: art-596-ap2-x402-cart-correlation'), which distinguishes it from siblings like correlate_ap2_cartmandate_x402. However, the actual chaining operation is largely conveyed through the schema's parent_hashes/parent_tool_ids rather than plainly in prose, so the core purpose is inferred more than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the compute modes (auto/server/browser) and warns 'Use synthetic or anonymised inputs only', but gives no guidance on when to choose this builder versus siblings like emit_chaingraph_artifact, build_chaingraph, or build_google_ap2_mandate, and no when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_art5_diligence_evidenceArticle 5 Due Diligence Evidence RecordB
Read-onlyIdempotent
Inspect

Article 5 Due Diligence Evidence Record: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-509-recompute-payment-waterfall. Open at: https://ainumbers.co/chaingraph/art-510-build-art5-diligence-evidence.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
periodNo
deal_refNo
duty_setNo
citationsNo
rationaleNo
duty_countNo
duty_resultsNo
investor_refNo
not_a_filingNo
position_refNo
judgment_dutiesNo
performed_countNo
no_adequacy_claimNo
override_handlingNo
distinctness_basisNo
no_ratio_publishedNo
outstanding_dutiesNo
rejected_citationsNo
agent_parity_findingsNo
override_record_countNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish a safe, idempotent, closed-world read. The description adds real behavioral context beyond them: inputs are processed transiently and not stored/logged/retained, compute may be delegated to the browser with a delegation URL returned, and the export carries an execution_hash for chain provenance. That is meaningful disclosure about data handling and execution location.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entry is bloated with low-signal boilerplate: a repeated 'Deterministic OpenChainGraph compute node' clause, a documentation URL, and a long FV-status snapshot paragraph with a raw hash that reads like embedded provenance noise rather than tool guidance. Useful content (compute modes, privacy, upstream dependency) is buried among it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, annotations covering safety, and 100% schema coverage, the description only needs to supply execution and data-handling context — which it does (compute routing, transience, upstream chaining, no retention). The only real omission is any statement of what the decision function actually evaluates for Article 5 diligence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics but adds no new detail such as how parent_hashes must be ordered or what fields policy_parameters accepts ('see the tool's manifest' pushes that elsewhere). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool builds an 'Article 5 Due Diligence Evidence Record' — a specific resource — and labels it a compliance_mandate compute node that exports an AP2 artifact. However, it never says in plain terms what the underlying computation or decision function is, and it leans on framework jargon (OpenChainGraph, AP2, chain provenance) that only partly distinguishes it from siblings like build_evidence_pack or assemble_ocg_evidence_bundle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete operational guidance: compute modes (auto/server/browser), the downstream behavior for gpu:true nodes, and 'Use synthetic or anonymised inputs only'. It also names the upstream dependency (art-509-recompute-payment-waterfall). But there is no explicit when-to-use-this-vs-an-alternative routing, so an agent cannot tell when this node is preferred over adjacent evidence-building tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_cbcr_reportOECD Country-by-Country Report BuilderA
Read-onlyIdempotent
Inspect

OECD Country-by-Country Report Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-473-interquartile-benchmark. Open at: https://ainumbers.co/chaingraph/art-472-cbcr-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
export_modeNo
gate_statusNo
anomaly_flagsNo
jurisdictionsNo
schema_versionNo
not_submittableNo
orphan_entitiesNo
all_fatal_passedNo
fatal_failure_countNo
xml_schema_skeletonNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuine context beyond them: inputs are 'processed transiently... not stored, logged, or retained,' gpu:true nodes always delegate to the browser, and output is an AP2 artifact carrying an execution_hash. It still omits what the produced CbCR content covers or any size/rate constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the tool name and compute behavior, which is good, but a large share of the text is generic OpenChainGraph template boilerplate reusable across dozens of sibling nodes, and the raw FV-status hash URL is long and low-value for an agent selecting the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. Still, for a node whose key content-bearing parameter is an unspecified policy_parameters object, the description never says what inputs a CbCR build requires, leaving an agent with procedural detail but no domain guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented; baseline is 3. The description restates the compute enum semantics that the schema already carries and adds nothing about parent_hashes/parent_tool_ids or the opaque policy_parameters (whose field names are deferred to a manifest).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Name and title identify a specific verb (build) and resource (OECD Country-by-Country Report). The body states it is a 'compliance_mandate' compute node that 'Exports an AP2 artifact with execution_hash for chain provenance,' so the produce-an-artifact purpose is clear. However, it gives no differentiation from near siblings such as compose_globe_gir or benchmark_tp_interquartile_range beyond one downstream link name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when 'auto'/'server'/'browser' compute modes apply and mandates 'Use synthetic or anonymised inputs only,' which is real operating guidance. It does not say when to choose this tool over its many reporting/compute siblings, so usage is only implicitly conveyed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_chaingraphBuild an executable ChainGraph DAGA
Read-onlyIdempotent
Inspect

Hash-aware sibling of build_workflow_links (ChainGraph Standard v0.1 §8.1). Returns an ordered, executable DAG over the ChainGraph suite's verifiable tools, with explicit parent_hash wiring: which upstream execution_hash each step must cite in its chain block. Pass target_tool_id to build the chain that produces that node (walks consumes-edges back to roots), or tool_ids for an explicit ordered list, or neither to list available ChainGraph nodes. Agent loop: run a node, capture its execution_hash, pass it as the parent_hash for each downstream node, then verify with verify_execution_hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_idsNoExplicit ordered list of ChainGraph node tool_ids to wire.
target_tool_idNoA ChainGraph node tool_id (e.g. "art-15-agent-commerce-conformance"). Builds the chain that produces it.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety. The description adds value by explaining the return structure (ordered DAG with parent_hash wiring) and the required interaction pattern (run, capture hash, pass as parent_hash, verify). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3-4 sentences) with key information front-loaded. Every sentence adds value, stating the sibling relationship, the return type, usage modes, and the agent loop. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains the return (ordered executable DAG with parent_hash) and provides a usage loop. It could be slightly more explicit about the exact format of the DAG (e.g., list of nodes), but overall it is sufficient for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. The description adds context about the purpose of each parameter (target_tool_id builds chain producing that node, tool_ids for explicit list), but does not provide additional semantic detail beyond the schema descriptions. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it builds an executable DAG for ChainGraph tools with hash wiring. It specifies the verb 'build', the resource 'ChainGraph DAG', and distinguishes itself from build_workflow_links as its 'hash-aware sibling'. Three usage modes are explicitly described.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use each parameter: target_tool_id for building a chain to a specific node, tool_ids for explicit ordering, and neither for listing nodes. It also provides an agent loop pattern. While it doesn't explicitly state when not to use this tool versus siblings, the context is clear enough for correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_claim_dispute_bundleClaim Dispute Bundle BuilderB
Read-onlyIdempotent
Inspect

Claim Dispute Bundle Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-306-agent-insurability-evidence-scorer. Open at: https://ainumbers.co/chaingraph/art-307-claim-dispute-bundle-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
receiptsNo
kpi_breachNo
claim_digestNo
challenge_digestNo
replay_instructionsNo
bundle_claim_strengthNo
insufficient_evidenceNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds meaningful context: deterministic server-side vs browser delegation, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for chain provenance. The FV-status snapshot caveat further clarifies verification behavior. These go beyond what structured fields convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The mechanics are front-loaded and reasonably ordered, but the text is jargon-dense and carries boilerplate (the full artifact URL and a long FV-status hash path) that adds length without helping an agent call the tool. Every clause is not clearly earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers compute modes and chaining inputs. What is missing is the substantive decision the node performs and how policy_parameters map to it, leaving a compliance-mandate builder under-explained for an agent that must supply inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters thoroughly. The description mostly restates the compute-mode semantics already in the schema and adds nothing about parent hash ordering or policy_parameters content (deferring to a manifest). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title say 'Claim Dispute Bundle Builder' and the description identifies it as an OpenChainGraph compute node (compliance_mandate) that exports an AP2 artifact with execution_hash. However, it never explains what a 'claim dispute bundle' actually contains or decides, so the domain purpose stays opaque. It is distinguishable from siblings only via the named upstream artifact (art-306-agent-insurability-evidence-scorer), not via a stated function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only real usage guidance is 'Use synthetic or anonymised inputs only' plus the compute-mode selection rules, which belong to parameter semantics. There is no statement of when to reach for this tool versus the many sibling builder/export tools, nor any prerequisite about needing upstream artifacts first beyond a bare list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_conditional_relief_collateral_receiptConditional-Relief Collateral ReceiptB
Read-onlyIdempotent
Inspect

Conditional-Relief Collateral Receipt: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-514-conditional-relief-collateral-receipt.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofNo
conditionsNo
exceptionsNo
asset_classNo
position_sizeNo
relief_regimeNo
version_staleNo
last_report_refNo
asset_class_validNo
relied_on_versionNo
all_conditions_metNo
declared_valuationNo
declared_haircut_pctNo
applicable_charge_pctNo
condition_set_versionNo
revocation_charge_pctNo
issuer_permitted_statusNo
revocation_capital_deltaNo
applicable_capital_chargeNo
revocation_capital_chargeNo
declared_reporting_cadenceNo
revocation_exposure_materialNo
eligibility_lost_on_revocationNo
issuer_permitted_status_declaredNo
revocation_eligible_without_reliefNo
revocation_eligible_without_relief_declaredNo

TDQS

B3.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Substantially exceeds the annotations: it discloses deterministic server/client execution semantics, GPU-forced browser delegation, transient processing with no storage/logging/retention, AP2 export with execution_hash for provenance, and that the FV-status file is a verifiable snapshot. These are exactly the behavioral traits an agent needs beyond readOnly/idempotent hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded with identity before mechanics, and the FV-status/URL material is compact. Minor redundancy ('OpenChainGraph compute node' stated twice) and a dense middle sentence keep it just shy of 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, an output schema, and full schema coverage present, the description carries its share by covering execution routing, privacy posture, and provenance export. The one omission is any hint of what the computed receipt expresses, which the output schema partially compensates for.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds parallel compute-mode context but no new syntax or format detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node in the compliance_control category that exports an AP2 artifact, which is a specific functional frame. However, it never explains what a 'Conditional-Relief Collateral Receipt' decision actually does or what domain question it answers, leaving the tool barely distinguishable from the many other build_* / emit_* receipt siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is one genuine usage constraint ('Use synthetic or anonymised inputs only'), but no guidance on when to choose this tool over the numerous related receipt/artifact builders. The compute-mode discussion describes parameter behavior rather than selecting between alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_conversion_receiptConversion Receipt BuilderA
Read-onlyIdempotent
Inspect

Conversion Receipt Builder: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-192-conversion-receipt-verifier. Open at: https://ainumbers.co/chaingraph/art-191-conversion-receipt-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
receiptNo
all_checks_passNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds substantive behavior beyond them: transient processing with no storage/logging/retention, server-side vs browser delegation rules, an offline-verifiable snapshot that is 'not a subscription'. It does not, however, describe failure modes or why the receipt is deterministic across modes. No contradiction with readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode and data-handling content is useful and reasonably front-loaded, but the opening is redundant ('OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node.') and the FV-status sentence is verbose. Several clauses could be trimmed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich annotations, the description need not explain return values, and it does cover compute routing, data handling, provenance chaining, and the downstream verifier. It is sufficient for correct invocation, with only the missing when-to-use guidance as a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description reinforces the compute enum semantics and hints at the chaining role of parent_hashes/parent_tool_ids, but it repeats what the schema already documents and adds no field-name guidance for policy_parameters (deferring to 'the manifest' just like the schema does).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name plus 'OpenChainGraph compute node (cryptographic_mandate)' and 'Exports an AP2 artifact with execution_hash for chain provenance' state a specific verb (build) and resource (conversion receipt). It even names the downstream consumer ('Output feeds: art-192-conversion-receipt-verifier'), which implicitly distinguishes it from the sibling verify_conversion_receipt. The jargon density (AP2, execution_hash, FV-status) slightly obscures the plain purpose, so not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the compute-mode selection (auto vs browser vs gpu:true) and the synthetic-input constraint, but never states the condition under which an agent should pick this builder over relatives like build_chaingraph, emit_chaingraph_artifact, or build_session_receipt. Usage is implied through the compute semantics rather than an explicit when/when-not statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_digest_manifestDigest Manifest BuilderB
Read-onlyIdempotent
Inspect

Digest Manifest Builder: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-191-conversion-receipt-builder. Open at: https://ainumbers.co/chaingraph/art-194-digest-manifest-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
manifestNo
all_checks_passNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish a safe, read-only, idempotent profile, but the description adds meaningful behavior: transient processing with no storage/logging/retention, a synthetic-input constraint, and GPU-dependent server/browser delegation logic. This substantially exceeds what the annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and includes redundant phrasing such as repeating 'OpenChainGraph compute node' and deterministic twice. The FV-status JSON hash and offline-verification note add bulk that is unlikely to help an agent select or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich input schema, existing annotations, and an output schema, the description only needs to add selection-critical context. It covers compute routing and data-handling constraints, but it remains unclear what the digest manifest itself represents and when this tool is preferred over closely related chain/compute builders.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely repeats the compute-mode explanation rather than adding new parameter meaning beyond the schema, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node that exports an AP2 artifact with an execution_hash, which gives a clear verb-and-resource picture. It does not explicitly distinguish itself from all sibling chain/compute tools, but the downstream mention of art-191-conversion-receipt-builder adds scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent to use synthetic/anonymised inputs and explains compute-mode routing, which is useful usage context. However, it does not state when to choose this tool over sibling builders such as build_chaingraph, emit_chaingraph_artifact, or build_conversion_receipt, so guidance remains implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_disclosure_manifestBuild a signed data-room disclosure manifestA
Read-onlyIdempotent
Inspect

Builds a Merkle-rooted disclosure manifest from a caller-supplied digest list (DATAROOM-1-BUILD-SPEC.md §DR-4) -- the agent hashes files itself and passes {path,size,digest,content_type} entries; the worker never sees file contents. Same leaf scheme as tools/546-disclosure-manifest-builder.html: sha256(path|digest|size), duplicate-last-leaf on an odd level. Entries are sorted by path before hashing so the root is order-independent. Returns the manifest object + merkle_root; sign and anchor it client-side (or via a separate §16 signing step) if a signed artifact is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
entriesYesList of {path,size,digest,content_type} -- the caller has already hashed each file.
room_labelNoLabel for the disclosure room.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds behavioral details: the worker never sees file contents, duplicate-last-leaf handling for odd levels, and sorting by path for order-independent roots. This provides valuable context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description fits in one paragraph and is front-loaded with the main purpose. It is slightly dense with technical details (e.g., duplicate-last-leaf, sorting), but every sentence adds value. Could be trimmed slightly without losing substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 2 parameters and no output schema, the description covers input requirements, the algorithmic process (Merkle tree construction), and the return value (manifest object + merkle_root). It also hints at post-processing steps. Complete enough for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented structurally. The description adds meaning by explaining the caller hashes files and passes {path,size,digest,content_type}, and mentions the Merkle leaf scheme (sha256(path|digest|size)). This goes beyond the schema for the entries parameter, though room_label lacks extra context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds a Merkle-rooted disclosure manifest from a caller-supplied digest list. It uses a specific verb ('builds') and defines the resource ('Merkle-rooted disclosure manifest'), distinguishing it from similar siblings like 'build_digest_manifest' by detailing the data-room context and hashing scheme.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use: to create a signed data-room manifest from pre-hashed files. It instructs the agent to hash files itself and pass specific entries, and notes post-processing steps. However, it does not explicitly state when not to use it or contrast with alternative tools, missing some guidance on exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_dora_roi_registerDORA Register of Information (RoI) Builder & Cross-ValidatorB
Read-onlyIdempotent
Inspect

DORA Register of Information (RoI) Builder & Cross-Validator: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2027-01-31 (DORA RoI annual submission cycle, Q1 (2nd cycle completed Q1 2026; next cycle Q1 2027).). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-466-dora-roi-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
entityNo
contractsNo
functionsNo
providersNo
validation_reportNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the bar is lower, and the description still adds real context: compute mode semantics (server for registered kernels, browser delegation URL otherwise, gpu:true always delegates), transient processing with no storage or logging, and an exported AP2 artifact carrying execution_hash. That is a meaningful disclosure beyond the annotation set. It does not describe failure modes or kernel-registration prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded, but the body is bloated: 'OpenChainGraph compute node' and 'Deterministic OpenChainGraph compute node' appear back-to-back, the deadline parenthetical is malformed with unbalanced nesting, and infra boilerplate about Cloudflare Workers crowds out domain content. Several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and compute/privacy/artifact chaining are covered adequately. The gap is domain completeness: for a complex DORA RoI builder, nothing tells the agent which policy_parameters fields are required or how cross-validation results are surfaced, which is the primary thing an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3: compute, parent_hashes, and parent_tool_ids are already explained in the schema, and the description merely restates compute:'auto' behavior. The one genuinely opaque input, policy_parameters, is dismissed as 'See the tool's manifest for field names', so the description adds no field-level meaning for the parameters that carry the actual RoI content.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line name a specific verb and resource: building and cross-validating a DORA Register of Information for the annual submission cycle. That is enough to distinguish it from sibling DORA tools like run_dora_readiness_diagnostic and compute_dora_roi_gleif_preflight_pack. It stops short of 5 because the body never says what the register actually contains or what cross-validation checks, leaving the agent to infer from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies useful timing context (annual cycle, next deadline 2027-01-31) and a hard input constraint ('Use synthetic or anonymised inputs only'). However, it never says when to pick this over the adjacent DORA siblings (readiness diagnostic, GLEIF preflight pack) or what upstream artifacts should feed it. Usage is implied by the regulatory deadline rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_dual_control_certificationDual Control Certification EvidenceB
Read-onlyIdempotent
Inspect

Dual Control Certification Evidence: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-503-build-dual-control-certification.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
regimeNo
subjectNo
boundaryNo
rationaleNo
as_of_dateNo
prepared_byNo
role_policyNo
verdict_reasonNo
counted_recordsNo
records_summaryNo
override_recordsNo
threshold_policyNo
override_handlingNo
rejection_recordsNo
counted_identitiesNo
distinctness_basisNo
no_arithmetic_claimNo
threshold_satisfiedNo
threshold_shortfallNo
agent_parity_findingsNo
off_role_records_ignoredNo
unsigned_records_rejectedNo
distinct_identities_countedNo
duplicate_identities_collapsedNo
foreign_subject_records_rejectedNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/destructive), the description discloses genuinely useful behavior: server vs browser execution semantics, GPU node delegation, transient non-retention of inputs, the requirement to use synthetic/anonymised inputs, and the exported AP2 artifact with execution_hash for provenance. This is substantive context the annotations do not carry, though pagination/error behavior is omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and behavioral facts are front-loaded, which is good, but the tail (an outbound URL plus a long FV-status receipt paragraph) is verbose for a tool-selection context and dilutes the signal. Mixed efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a fully documented schema and an existing output schema, most mechanical information is covered, and the compute/chaining behavior is addressed. What remains missing is the semantic meaning of the certification and any instruction on appropriate use, which an agent needs to select this tool correctly among dozens of similar builders.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters including the compute enum. The description's compute-mode explanation largely restates the schema's own compute description and adds no syntax or format detail for parent_hashes, parent_tool_ids, or policy_parameters, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as a deterministic OpenChainGraph compute node that exports an AP2 artifact with an execution_hash, which is a concrete verb+output. However, it never explains what 'dual control certification' actually certifies (the compliance_control decision function), so the substantive purpose is implied rather than stated and it is hard to distinguish from the many other build_* artifact tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no routing to sibling tools despite a large family of build_/verify_/emit_ artifacts. The compute-mode text explains mechanics, not when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_einvoice_transmission_receiptE-Invoice Transmission Receipt BuilderA
Read-onlyIdempotent
Inspect

E-Invoice Transmission Receipt Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-295-einvoice-jurisdiction-mandate-router. Open at: https://ainumbers.co/chaingraph/art-296-einvoice-transmission-receipt-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
stepsNo
formatNo
ha_wiringNo
validatedNo
claim_strengthNo
routed_mandateNo
document_sha256No
vat_gate_passedNo
not_legal_adviceNo
format_gate_passedNo
embedded_xml_sha256No

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the burden is reduced, and the description still adds substantive behavior: deterministic execution, transient processing with no storage or logging, a synthetic-inputs-only restriction, an execution_hash-bearing AP2 export for chain provenance, and offline verifiability via the FV-status snapshot. Only the return shape itself is left to the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical information (function, compute default, privacy, export) is front-loaded, but the opening repeats the title verbatim and says 'Deterministic OpenChainGraph compute node' twice, and the FV-status sentence is long and peripheral. The size is defensible for a provenance tool but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and annotations cover the safety profile, the description supplies the missing pieces: upstream dependency, chaining semantics, deployment/compute behavior, privacy constraints, and offline verification. The only notable hole is that policy_parameters content is left undefined.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute modes already documented in the schema and explains chaining intent behind parent_hashes, but adds nothing about how policy_parameters fields are named, deferring to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (builds an e-invoice transmission receipt) and names the upstream artifact it consumes (art-295-einvoice-jurisdiction-mandate-router), which implicitly differentiates it from the routing sibling. However, it leads with generic OpenChainGraph framing ('compute node (compliance_mandate)') that an agent must parse before reaching the actual function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real guidance on compute mode selection (auto/server/browser, gpu:true always delegates) and says which upstream artifact feeds it, plus a privacy constraint ('use synthetic or anonymised inputs only'). It does not say when an agent should call this builder versus alternatives like emit_chaingraph_artifact, validate_einvoice_format, or validate_einvoice_batch, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_etr_possession_chainETR Possession-Chain Receipt BuilderB
Read-onlyIdempotent
Inspect

ETR Possession-Chain Receipt Builder: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-352-etr-control-evidence-checker. Open at: https://ainumbers.co/chaingraph/art-353-etr-possession-chain-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
event_countNo
merkle_rootNo
final_holderNo
document_digestNo
chain_continuousNo
continuity_breaksNo
possession_receiptsNo
timestamp_order_validNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, it discloses genuinely non-obvious behavior: inputs are processed transiently and not stored or logged, gpu:true nodes always delegate to the browser, and the FV-status reference verifies offline regardless of fetch. These are meaningful operational facts the annotations do not carry, though it stops short of describing failure modes or delegation-URL lifecycle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence repeats the title verbatim before adding substance, and a raw artifact URL plus a long FV-status hash path consume significant space with limited decision value. The compute/privacy information is front-loaded reasonably, but the paragraph is denser and more digressive than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description adequately covers privacy posture, compute routing, provenance chaining, and the upstream dependency. For a 4-parameter tool with a nested policy_parameters object, what remains missing is guidance on selecting among sibling builders, which is a usage rather than completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already fully documented in the schema. The description's compute-mode prose simply restates what the schema enum description already says, adding no new parameter-level meaning. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('ETR Possession-Chain Receipt Builder', cryptographic_mandate) and a concrete output action ('Exports an AP2 artifact with execution_hash for chain provenance'), so the verb+resource is discernible. However, it is buried under jargon ('OpenChainGraph compute node', 'possession-chain') and never plainly differentiates itself from nearby siblings such as build_chaingraph or emit_chaingraph_artifact beyond naming its one upstream source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It documents the compute-mode selector (auto/server/browser) and warns 'Use synthetic or anonymised inputs only', which is useful context. But it gives no guidance on when an agent should choose this builder over the many other chaingraph/receipt-building siblings, nor any prerequisites or a when-not-to-use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_evidence_packAssemble a complete evidence pack in one callAInspect

Composes a session receipt (build_session_receipt logic), an optional §27.6 HA evidence bundle (ha_bundle_export logic, included only when ha_records is supplied and non-empty), and a disclosure manifest (build_disclosure_manifest logic) from one array of already-produced artifacts, all keyed to the same input hashes -- replacing what today takes 4-6 separate tool calls with hand-carried hashes. Calls the same in-process functions those standalone tools use; if any one section fails to build, the whole call fails isError:true with that section's own message -- no partial pack.

ParametersJSON Schema
NameRequiredDescriptionDefault
sd_jwtNoWhen true, also return an SD-JWT export of the HA bundle (mirrors ha_bundle_export, default false; no-op when ha_records is absent).
framingNoOptional framing context for the session receipt's PTG-01 regulator prompt.
artifactsYesAlready-produced artifacts this pack documents, in call order.
ha_recordsNo§27 human_accountability_records -- omit entirely for no HA section.
room_labelNoLabel for the disclosure-manifest room.
session_idNoSession identifier to embed in the receipt, if the caller tracks one.
subject_hashNoThe sha256: subject hash the pack documents (defaults to artifacts[0].execution_hash if omitted).
kernel_versionNoVersion tag of the kernel that produced verification_result.
policy_versionNoVersion tag of the policy the kernel was evaluated against.
submission_receiptNoPopulate ONLY after a real transmission -- never fabricate (same rule as ha_bundle_export).
verification_resultNoThe §16/§18/§20 verdict.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and provide no safety profile, so the description carries the burden. It discloses key behavioral traits: the HA bundle is included only when ha_records is supplied and non-empty, and the call fails atomically with isError:true and the failing section's message if any section fails. This goes beyond the structured annotations and adds meaningful operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, densely packed with information: main action, component breakdown, conditional inclusion, consolidation benefit, implementation note, and failure behavior. Every clause earns its place; no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 11 parameters and no output schema, the description covers the main components, input requirements, conditional behavior, failure mode, and relationship to standalone tools. It does not detail the success response structure, but naming the three composed sections gives a reasonable picture of the output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by clarifying relationships between parameters: artifacts are 'all keyed to the same input hashes' and the HA bundle is 'included only when ha_records is supplied and non-empty.' This supplements the schema descriptions with cross-parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Composes') and names the exact resources produced: a session receipt (build_session_receipt logic), an optional §27.6 HA evidence bundle (ha_bundle_export logic), and a disclosure manifest (build_disclosure_manifest logic). It also specifies the input ('one array of already-produced artifacts') and explicitly distinguishes itself from sibling tools by naming the standalone tools it replaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the consolidation benefit ('replacing what today takes 4-6 separate tool calls with hand-carried hashes') and names the alternative standalone tools, giving strong context for when to use this tool. It does not explicitly state when NOT to use it (e.g., when only one section is needed), but the implied guidance is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_fria_monitoring_planFRIA & Post-Market Monitoring Plan BuilderB
Read-onlyIdempotent
Inspect

FRIA & Post-Market Monitoring Plan Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-64-ai-act-highrisk-fit-diagnostic. Output feeds: 451-sr11-7-model-risk-management-gap-assessor, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-66-fria-postmarket-monitoring-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
fria_gapsNo
deploymentNo
fria_gradeNo
fria_scoreNo
incident_pathNo
overall_scoreNo
affected_rightsNo
logging_verdictNo
oversight_verdictNo
applicable_date_noteNo
monitoring_plan_skeletonNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds non-obvious behavior beyond that: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are mandated, compute:auto vs browser delegation semantics are spelled out, and the export carries an execution_hash for chain provenance. This is meaningful disclosure the schema and annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening defines the tool by node type and then spends most of its length on generic Chaingraph boilerplate (compute binding, retention, FV-status receipt URL) rather than the actual FRIA deliverable. This front-loads infrastructure jargon over the purpose, and several sentences do not earn their place for this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations, an output schema, and explicit upstream/downstream chaining cover a good deal, so the description needn't restate return values. The remaining gap is the opaque policy_parameters object, which is deferred to an unnamed manifest with no pointer to where that manifest is found — a real omission for a tool whose main input is a free-form nested object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, giving a baseline of 3. The description's compute-mode explanation duplicates the schema's own compute description and does not clarify parent_hashes/parent_tool_ids pairing beyond what the schema says, nor does it help with policy_parameters, which the schema punts to an unspecified 'tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and first line identify the tool as a FRIA and post-market monitoring plan builder in the compliance_mandate domain, which is a specific verb+resource. However, the description never elaborates on what the produced plan actually contains, and the remaining text is generic OpenChainGraph compute plumbing that could be pasted onto any node in the family. Purpose is inferable but not sharpened, and it is not distinguished from siblings like build_ai_conformity_pack or assess_ai_act_conformity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The chaining statements ('Consumes upstream artifacts from art-64-ai-act-highrisk-fit-diagnostic' and 'Output feeds: 451-sr11-7..., cry-05-...') imply where this tool sits in a pipeline, which is real usage context. But there is no explicit when-to-use/when-not guidance, no prerequisites, and no routing to or away from the many sibling AI-Act tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_google_ap2_mandateGoogle AP2 Checkout/Payment Mandate (VDC) Builder & ValidatorA
Read-onlyIdempotent
Inspect

Build or validate a Google AP2 Checkout/Payment Mandate VDC (Open/Closed). Targets the external AP2 spec, not the AINumbers Policy Mandate. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
mandateNo
findingsNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate safe read operation (readOnlyHint=true, idempotentHint=true, destructiveHint=false). The description adds valuable context about the execution model: a client-side widget with zero PII and zero network traffic, which goes beyond the annotations and clarifies the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: three sentences, each providing essential information (purpose, scope distinction, execution model). No wasted words, front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with an output schema, the description covers purpose, scope, and behavioral context. It does not explain terms like VDC or Open/Closed, but these may be domain-specific. Overall, it is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the 'inputs' parameter, so the schema already explains the parameter. The description mentions inputs are applied via AIN Bridge prefill, which adds minimal extra meaning. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Build or validate a Google AP2 Checkout/Payment Mandate VDC', specifying the resource and actions. It distinguishes from the AINumbers Policy Mandate, but does not fully differentiate from sibling tools like 'validate_ap2_mandate_chain' or 'ap2_aml_mandate_builder', which have overlapping purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by targeting the external AP2 spec and not the internal policy mandate, but does not explicitly state when to use this tool versus alternatives (e.g., validators of AP2 mandates) or provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_idv_session_receiptIDV/KYC Session Evidence Receipt BuilderB
Read-onlyIdempotent
Inspect

IDV/KYC Session Evidence Receipt Builder: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-418-idv-verification-failure-incident-composer. Open at: https://ainumbers.co/chaingraph/art-359-idv-session-receipt-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive behavior, but the description adds substantive context: deterministic execution, server-vs-browser compute delegation, transient processing with no storage/logging/retention, and an AP2 artifact carrying execution_hash for provenance. It does not contradict the readOnly annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded, but the text is bloated and repetitive ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node'), and it devotes substantial space to compute-binding and FV-status details that are tangentially useful to tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully mentions the exported AP2 artifact and its execution_hash, and it covers privacy and compute behavior. However, it gives no guidance on the policy_parameters object that drives the decision function, leaving the primary input payload opaque ('See the tool's manifest').

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute modes, parent_hashes, parent_tool_ids, and policy_parameters. The description largely restates the compute-mode semantics rather than adding new meaning, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: it builds an IDV/KYC session evidence receipt as an OpenChainGraph compliance_control compute node. That is clearer than a tautology, but it never distinguishes itself from near-identical siblings such as build_session_receipt or build_vop_session_receipt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is a privacy constraint ('Use synthetic or anonymised inputs only') and a downstream hint ('Output feeds: art-418-idv-verification-failure-incident-composer'). There is no explicit when-to-use or when-not-to-use versus the many sibling receipt builders.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_idv_verification_incident_recordIDV/KYC Verification-Failure Incident ComposerB
Read-onlyIdempotent
Inspect

IDV/KYC Verification-Failure Incident Composer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-359-idv-session-receipt-builder. Open at: https://ainumbers.co/chaingraph/art-418-idv-verification-failure-incident-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
record_noteNo
remediationNo
cross_linkedNo
evidence_countNo
session_receiptNo
session_evidenceNo
escalation_cross_linkNo
record_claim_strengthNo
failure_classificationNo
invalid_evidence_countNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive/non-open-world), the description discloses real behavior: compute mode routing between server-side Workers and browser delegation, that gpu:true nodes always delegate, that inputs are processed transiently and not stored/logged/retained, and that it exports an AP2 artifact bearing an execution_hash. That covers execution characteristics the annotations cannot express, though it reads as reusable boilerplate rather than tool-specific detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph that front-loads the tool identity, but it is overloaded with infrastructure boilerplate, a full documentation URL, and an FV-status filename/hash that consume space without helping an agent select or invoke the tool. Front-loading is good, but several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and all parameters are covered by the schema. What remains missing is the substantive side: what the incident record must contain, what the verification-failure facts are, and how it differs from sibling incident composers, so the description is operationally complete but substantively thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description's compute-mode sentence merely repeats the enum semantics already present in the schema, adding no new syntax or guidance, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause restates the title ('IDV/KYC Verification-Failure Incident Composer') and classifies the tool as an OpenChainGraph compute node, but never states in plain terms what the incident record contains or what composing it produces. The category label 'compliance_mandate' and the export line hint at the output, yet the description spends most of its words on compute plumbing rather than the tool's specific job, leaving it hard to distinguish from siblings like build_idv_session_receipt or build_agent_incident_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description names one upstream artifact to consume (art-359-idv-session-receipt-builder) and constrains inputs to synthetic/anonymised data, which implies a workflow position. However it never says when to use this tool versus the many sibling incident/receipt builders, and no exclusions or alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_mastercard_agentic_tokenMastercard Agentic Token Scope BuilderA
Read-onlyIdempotent
Inspect

Mastercard Agentic Token Scope Builder: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-22-agentic-payments-protocol-comparator, art-23-visa-trusted-agent-protocol-inspector. Output feeds: art-18-mcp-developer-readiness-scorecard, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-24-mastercard-agentic-token-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/non-openWorld, and the description adds real behavioral context: determinism, the auto/server/browser compute-mode branching, browser delegation URL return, transient non-retained processing, and export of an AP2 artifact with execution_hash. It stops short of stating auth requirements or rate/limit behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The name/category is front-loaded, but the body is long and contains redundancy ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') plus a URL and a long FV-status sentence that dilute the core callable intent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param tool with no output schema, the description covers compute modes, data-handling guarantees, provenance/chain linkage, the artifact its exports, and an access URL, which is enough for an agent to invoke it. The one gap is downstream shape of the exported artifact, though the chaining hints partly compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description corroborates the compute-mode and chaining semantics ('sets chain.parent_hashes in the export') but adds no syntax or field detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource (building a Mastercard agentic token scope) and classifies it as an OpenChainGraph compliance_control compute node, so the agent knows what it does. However, it never distinguishes this from near-siblings like build_google_ap2_mandate, ap2_aml_mandate_builder, or build_ap2_cartmandate_hashchain, and the opening repeats the title verbatim.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives contextual routing via 'Consumes upstream artifacts from' and 'Output feeds', plus 'Use synthetic or anonymised inputs only', which implies how it fits a chain. But there is no explicit when-to-use vs. alternatives or when-not-to-use guidance relative to the many AP2/mandate builders, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_model_inventory_entryModel Inventory Entry BuilderB
Read-onlyIdempotent
Inspect

Model Inventory Entry Builder: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-451-model-outcome-analysis. Open at: https://ainumbers.co/chaingraph/art-450-model-inventory-entry.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierNo
tier_sumNo
model_nameNo
ai_ml_modelNo
usage_scopeNo
complexity_scoreNo
inventory_recordNo
materiality_scoreNo
completeness_scoreNo
third_party_vendorNo
missing_required_fieldsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral context beyond them: inputs are processed transiently and not stored, logged, or retained; compute:'browser' returns a delegation URL; gpu:true nodes always delegate; the output is an AP2 artifact carrying execution_hash for chain provenance. That is substantive disclosure not present in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two clauses are front-loaded and the compute/privacy rules are grouped, but the block opens with a redundant restatement ('Model Inventory Entry Builder: OpenChainGraph compute node ... Deterministic OpenChainGraph compute node') and ends with an offline-receipt explanation and a URL that are tangential to selecting or invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so return values and mutation risk need no restating. What is missing is the fundamental 'what does this entry represent and when do I reach for it instead of a sibling', which for a fairly abstract compliance_control node leaves the agent relying on the name alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters including the compute enum semantics. The description adds only marginal framing (execution_hash used for chaining) and largely restates the compute-mode explanation already in the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title anchor a verb+resource ('build a model inventory entry'), but the description itself never says what a model inventory entry contains or what the tool computes, spending its sentences on compute modes and provenance instead. It also does not distinguish this from near-identical siblings such as build_ai_workpaper_record, record_model_input_lineage, or compile_model_risk_lineage_pack. Purpose is inferable from the name only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives runtime guidance for the compute parameter and a data-handling constraint ('Use synthetic or anonymised inputs only'), which is useful. It gives no task-level when-to-use, no prerequisites, and no pointer to an alternative tool for a related goal, despite dozens of sibling build_* and model-risk tools that could be confused with it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_no_russia_clause_packNo-Russia-Clause Pack BuilderB
Read-onlyIdempotent
Inspect

No-Russia-Clause Pack Builder: OpenChainGraph compute node (disclosure_template). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-95-circumvention-diligence-assessor. Output feeds: cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-96-no-russia-clause-pack-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
clause_textNo
eu_20th_noteNo
template_usedNo
reference_versionNo
completeness_gradeNo
evidence_checklistNo
required_items_metNo
required_items_totalNo
missing_required_itemsNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, and the description adds genuinely useful non-annotation context: server-side vs client-side execution, browser delegation URL for gpu:true, transient processing with 'not stored, logged, or retained,' and an exported AP2 artifact carrying execution_hash for provenance. That is meaningful behavioral detail beyond the structured hints, though it omits failure modes and determinism caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is information-dense but repetitive ('OpenChainGraph compute node' appears twice) and front-loads infrastructure rather than the task, with the FV-status receipt/URL trailing as a long boilerplate tail. Nothing is strictly wasted, but the ordering buries the actionable guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the return shape need not be explained, and the description supplies the compute-binding rules, data-handling policy, and chain provenance hooks an agent needs to invoke it correctly. The one gap is the meaning of the opaque policy_parameters bag, deferred to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute/parent_hashes/parent_tool_ids/policy_parameters fields are already documented in the schema, and the description largely restates the compute-mode text. It adds nothing about policy_parameters field names beyond pointing to a manifest, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title convey the resource (No-Russia clause pack builder) and the description confirms it is a 'disclosure_template' compute node, so the broad purpose is legible. However, most of the prose is spent on OpenChainGraph infrastructure (compute modes, chaining, receipts) rather than what the clause pack actually decides or contains, so an agent knows the node type but not the substantive output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real operating guidance: 'Use synthetic or anonymised inputs only,' compute='auto' vs 'browser' semantics, and explicit upstream/downstream artifacts (consumes art-95, feeds cry-04). But it never states when to pick this tool over a sibling or what preconditions the inputs must satisfy, so the routing signal is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_pld_disclosure_packPLD Disclosure Pack BuilderB
Read-onlyIdempotent
Inspect

PLD Disclosure Pack Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-308-pld-disclosure-pack-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
anchorNo
product_refNo
trace_digestNo
gap_in_windowNo
alleged_defectNo
disputed_windowNo
rebuttal_mappingNo
replay_instructionsNo
insufficient_evidenceNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, but the description adds real value beyond them: transient processing with no storage, logging, or retention, plus a 'use synthetic or anonymised inputs only' caveat, plus server vs browser delegation behavior. These are behavioral traits not present in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is duplicated ('OpenChainGraph compute node' then 'Deterministic OpenChainGraph compute node'), and the trailing URL plus FV-status receipt hash bloat the text. The genuinely useful disclosures are buried mid-paragraph behind metadata.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the compute/delegation semantics are adequately covered. However, for a compliance artifact builder it omits what the pack constitutes and when it should be produced, leaving the agent without enough to route confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute modes but adds no new per-parameter meaning (e.g., ordering or chaining rules are already in the schema), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title and the phrase 'Exports an AP2 artifact with execution_hash for chain provenance' convey the verb and output type, but the description never explains what a 'PLD disclosure pack' contains or who it is for. It reads as a generic compute-node boilerplate rather than a specific purpose statement, and it does not differentiate from siblings such as build_disclosure_manifest or build_evidence_pack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not, or alternative routing guidance. The compute-mode sentences describe runtime mechanics rather than situational guidance, and nothing tells the agent when this builder is the right choice over adjacent pack-builders.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_product_lineageDigital Product Passport Cradle-to-Gate Lineage BuilderA
Read-onlyIdempotent
Inspect

Digital Product Passport Cradle-to-Gate Lineage Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-115-dpp-data-carrier-validator. Output feeds: art-117-product-authenticity-verifier. Open at: https://ainumbers.co/chaingraph/art-116-product-lineage-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
depthNo
lineageNo
product_idNo
total_carbonNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already declare readOnly/idempotent/non-destructive/closed-world), the description adds real behavioral facts: the compute:'auto' vs 'browser' delegation logic, gpu:true always delegating, transient non-retention of inputs, and the 'use synthetic or anonymised inputs only' constraint. This is substantive operational context an agent cannot derive from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is self-redundant ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'), and the trailing FV-status receipts sentence with a full hash and URL is verbose metadata. The genuinely useful compute-mode and data-handling sentences are buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers chain position, compute behavior, and data handling adequately for a compute node. The only gap is that policy_parameters contents are explicitly deferred to an external manifest rather than described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters thoroughly, making 3 the baseline. The description clarifies the compute-mode branching and notes parent_hashes map to chain.parent_hashes in the export, but that largely restates the schema and defers policy_parameters field names to 'the tool's manifest.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title plus 'Exports an AP2 artifact with execution_hash for chain provenance' and the named upstream/downstream artifacts (art-115-dpp-data-carrier-validator, art-117-product-authenticity-verifier) make it clear this builds a DPP cradle-to-gate lineage chain. It is distinguishable from siblings by naming the chain neighbours. It never states the core action in one plain verb+resource sentence, relying on the title to carry that.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Consumes upstream artifacts from' / 'Output feeds' lines imply where this node sits in a workflow, which is useful positional context, but there is no explicit when-to-use, when-not-to-use, or alternative-selection guidance. Usage is only inferable from chain position.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_public_money_settlement_receiptPublic-Money Settlement ReceiptB
Read-onlyIdempotent
Inspect

Public-Money Settlement Receipt: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-513-public-money-settlement-receipt.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
feesNo
as_ofNo
railsNo
at_parNo
currencyNo
exceptionsNo
reconciledNo
payer_classNo
payment_refNo
amount_creditedNo
expected_creditNo
amount_collectedNo
payer_class_validNo
at_par_discrepancyNo
attributed_ministryNo
attribution_matchedNo
total_fees_itemisedNo
declared_revenue_codeNo
reconciliation_windowNo
single_settlement_statusNo
treasury_account_creditedNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds real value beyond them: inputs are processed transiently and not stored/logged, synthetic or anonymised inputs are required, execution is deterministic, and gpu:true nodes always delegate to the browser. That is substantive behavioral context an agent cannot infer from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core capability is front-loaded, but the description is dense and padded with an absolute URL and an fv-status file path that add bulk without helping invocation. Several clauses repeat the tool name or the schema's compute semantics, diluting the signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and it compensates well: it covers compute routing, provenance chaining, privacy constraints, and the AP2 artifact export. For a 4-param builder node this is close to sufficient, though the absence of any sibling-routing guidance leaves a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode semantics but adds no format or ordering detail beyond what the schema provides (e.g., it doesn't clarify how parent_tool_ids must align with parent_hashes). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete output — an AP2 artifact with execution_hash for chain provenance — and identifies the tool as a deterministic OpenChainGraph compute node for a public-money settlement receipt. It is distinguishable from generic receipt builders, though the 'compute node' framing is jargon-heavy and doesn't sharply contrast with the many other build_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to prefer this tool over siblings like build_conversion_receipt, build_session_receipt, or build_einvoice_transmission_receipt. The compute-mode guidance (auto vs browser) is parameter-level, not tool-selection guidance, so the agent gets no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_rights_recordRights Record BuilderC
Read-onlyIdempotent
Inspect

Rights Record Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-205-license-terms-assembler. Open at: https://ainumbers.co/chaingraph/art-206-rights-record-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
disclaimerNo
rights_rowNo
record_hashNo
all_checks_passNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations it discloses meaningful behavior: transient processing with no storage/logging/retention, server-vs-browser execution rules including that gpu:true always delegates, and the chained execution_hash export. This is substantive context annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is long and partly boilerplate: 'OpenChainGraph compute node' is repeated, and the URL plus 'FV-status ... a snapshot, not a subscription' receipt paragraph adds bulk without aiding invocation. The useful scoping (transient inputs, delegation rules) is not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers compute routing, provenance chaining, and data-handling. It remains thin on what the rights record contains and what policy_parameters must hold, deferring both to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics but adds no field-level detail (e.g., policy_parameters content, which it defers to a separate manifest).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title carry 'build a rights record', and the description does add that it exports an AP2 artifact with execution_hash and consumes upstream artifacts from art-205-license-terms-assembler. However, the actual purpose is buried under compute-mode boilerplate and repeated 'OpenChainGraph compute node' phrasing, so the specific verb+resource is diluted rather than front-loaded.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a data-handling constraint ('use synthetic or anonymised inputs only') and explains the compute-mode choice, but that is parameter behavior, not tool-selection guidance. There is no statement of when to choose this over siblings like build_ap2_cartmandate_hashchain or emit_chaingraph_artifact.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_safeguarding_audit_evidenceCASS 15 Safeguarding Audit Evidence PackB
Read-onlyIdempotent
Inspect

CASS 15 Safeguarding Audit Evidence Pack: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-501-build-safeguarding-audit-evidence.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rulesetNo
subjectNo
firm_refNo
citationsNo
rationaleNo
audit_periodNo
not_a_filingNo
missing_itemsNo
pack_completeNo
evidence_itemsNo
method_summaryNo
exception_countNo
auditor_opinionsNo
report_vocabularyNo
exception_scheduleNo
minor_unit_exponentNo
no_arithmetic_claimNo
accountability_trailNo
reconciliation_summaryNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description nonetheless adds genuinely useful behavioral context: inputs are processed transiently and "not stored, logged, or retained," with the explicit directive "Use synthetic or anonymised inputs only," plus deterministic execution and a browser-delegation URL for compute:"browser". These go beyond structured fields and materially affect how an agent should invoke it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the title and purpose, but then becomes repetitive: the compute-mode logic is stated in prose and again verbatim in the schema, and the trailing FV-status receipt sentence is long and only tangentially useful for invocation. Several sentences (hash URL, offline-verification aside) do not clearly earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values need not be explained, and the description adequately covers execution modes, data-handling, and chaining behavior. What is missing is domain substance: what a CASS 15 safeguarding evidence pack actually contains or requires, leaving an agent unable to judge fitness for a safeguarding task from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enum values for compute, the parent_hashes/parent_tool_ids chaining, and the policy_parameters object are already documented in the schema. The description restates the compute-mode semantics but adds no new syntax, ordering rules, or format detail beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title-equivalent opening names the resource ("CASS 15 Safeguarding Audit Evidence Pack") and identifies it as a compliance_mandate compute node that "Exports an AP2 artifact with execution_hash for chain provenance." But the description spends most of its words on compute infrastructure rather than stating what safeguarding evidence it builds or how it differs from the many sibling build_*_evidence_pack tools. An agent learns the category but not the substantive purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to choose this tool over alternatives such as build_evidence_pack, build_sanctions_screening_evidence_pack, or check_safeguarding_reconciliation. The only usage-adjacent guidance is the compute-mode selection (auto/server/browser), which is really an execution detail, not task routing. No prerequisites or exclusion conditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_sanctions_screening_evidence_packSanctions Screening Evidence PackB
Read-onlyIdempotent
Inspect

Sanctions Screening Evidence Pack: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-585-sanctions-screening-evidence-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
verdictNo
evidence_packNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, and the description goes beyond them by disclosing that computation is deterministic, that inputs are processed transiently and not stored/logged/retained, that gpu:true nodes always delegate to the browser, and that the export carries an execution_hash for chain provenance. This is real behavioral context an agent would not get from the annotations alone. No contradiction with the readOnly annotation, since the artifact export is part of the compute response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence front-loads the tool identity, but the body is bloated with boilerplate (Cloudflare Workers kernel registration, transient-processing marketing copy, a bare URL, and a 64-character FV-status hash with an explanation of snapshot semantics). Several sentences do not help an agent decide or invoke correctly, and the useful compute/behavior facts are scattered rather than organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and the compute-mode behavior is reasonably covered. But for a compliance evidence tool with an opaque policy_parameters object, the description gives no field-level guidance and no routing versus sibling evidence-pack builders, leaving the agent with gaps that neither schema nor description close.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode behavior that the schema already documents in the compute property, and adds nothing about parent_hashes, parent_tool_ids, or policy_parameters (the schema itself punts to 'the tool's manifest for field names'). It neither compensates for nor enriches the parameter definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a 'Sanctions Screening Evidence Pack: OpenChainGraph compute node (compliance_mandate)' and notes it 'Exports an AP2 artifact with execution_hash', so the resource and output type are inferable. However, it never states the operative verb plainly ('builds/assembles an evidence pack for X') and offers no differentiation from close siblings like build_evidence_pack, assemble_aiuc1_evidence_pack, score_sanctions_screening_quality, or screen_sanctions_private. The purpose is buried under generic Chaingraph boilerplate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is usable context: 'Use synthetic or anonymised inputs only', and the compute-mode semantics imply when server vs browser execution applies. But nothing tells the agent when to reach for this tool versus the many alternative evidence-pack or sanctions-screening tools in the sibling list, and no prerequisites or exclusions are given. Usage is implied rather than specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_session_receiptBuild a session audit receipt (Merkle root)A
Read-onlyIdempotent
Inspect

Aggregates execution_hashes from N ChainGraph tool calls in one agent session into a single SHA-256 Merkle root (session_receipt_root). Returns a tamper-evident session receipt and a regulator-framed PTG-01 audit prompt. One receipt covers an entire agent session: supply all execution_hashes in call order. The Merkle root is deterministic — the same hashes in the same order always produce the same root. Compliant with EU AI Act Art. 12 (transparency) and DORA ICT audit-trail requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
framingNoOptional framing context for the PTG-01 regulator prompt (e.g. "DORA incident review" or "EU AI Act Art.12 transparency log").
tool_idsNotool_id values corresponding to execution_hashes, in the same order. Used for the audit narrative.
session_idNoOptional agent session identifier for the audit narrative (e.g. a UUID or timestamp).
prior_receiptNoAn earlier receipt from this SAME session (its mmr_peaks/mmr_size/mmr_bagged_root). When supplied, execution_hashes MUST start with that earlier receipt's full leaf set — the response's consistency_proof then proves this receipt provably APPENDS to the prior one (CT-style append-only guarantee) without operating a log.
execution_hashesYesOrdered list of execution_hash values from ChainGraph tool calls in this session (each produced by emit_chaingraph_artifact or a kernel tool). Minimum 1.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly, idempotent), the description adds determinism ('same hashes in the same order always produce the same root') and states the output is tamper-evident and regulator-framed. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each adding value: core function, return value, session-wide scope, and determinism/regulatory compliance. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers main behavior, output, and regulatory context. It does not mention the prior_receipt append-only consistency feature, but the detailed schema description compensates. With 5 params and a nested object, this is adequately complete for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3 applies. The description reinforces the ordering requirement for execution_hashes and mentions session context, but does not add meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool aggregates execution_hashes into a SHA-256 Merkle root and returns a session receipt plus audit prompt. It names the specific resource (session audit receipt) and distinguishes from sibling build_* tools by emphasizing 'session' and 'Merkle root'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: one receipt covers an entire agent session and requires all execution_hashes in call order. Does not explicitly name alternative tools or state when not to use it, but the usage scenario is sufficiently defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_tdm_reservationTDMRep AI Training Reservation BuilderA
Read-onlyIdempotent
Inspect

TDMRep AI Training Reservation Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-201-iscc-content-code-generator. Open at: https://ainumbers.co/chaingraph/art-202-tdmrep-reservation-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds genuine value: the server-vs-browser compute delegation rules, the transient no-storage/no-logging guarantee, and the exported AP2 artifact with execution_hash. These are traits an agent cannot infer from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The important content (compute modes, transient processing, artifact export) is front-loaded after the title, but the trailing Open-at URL and long FV-status hash/path are mostly noise for an agent selecting a tool. Padding dilutes an otherwise usable definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return burden and does mention the AP2 artifact and execution_hash. However, the actual decision-function fields (policy_parameters) are deferred to 'the tool's manifest' rather than described, leaving a meaningful gap for a 4-parameter nested-object tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters in detail. The description's compute-mode explanation merely echoes the compute parameter's own schema description and adds no new field semantics; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a specific verb+resource (build a TDMRep AI Training Reservation / artifact), and the description identifies it as a deterministic OpenChainGraph compute node exporting an AP2 artifact. It does not distinguish itself from the many sibling 'build_*' and 'compute_*' tools, but the purpose is unambiguous within its domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an input constraint ('Use synthetic or anonymised inputs only') and names an upstream artifact source, which shapes usage. But it never states when to choose this tool over a sibling or when not to use it; the compute-mode discussion is behavioral, not a decision aid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_traiga_safe_harbor_packTRAIGA Safe Harbor Pack BuilderA
Read-onlyIdempotent
Inspect

TRAIGA Safe Harbor Pack Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-313-traiga-exposure-assessor, art-174-nist-ai-rmf-function-mapper. Open at: https://ainumbers.co/chaingraph/art-314-traiga-safe-harbor-pack-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
framingNo
coverage_bandNo
overall_coverageNo
statute_citationNo
insufficient_evidenceNo
prohibited_use_detectedNo
meets_substantial_compliance_barNo
eligible_for_affirmative_defense_evidenceNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered; the description goes further by disclosing transient processing (not stored, logged, or retained), the compute delegation behavior, and that output carries an execution_hash for chain provenance. This is meaningful context beyond the structured fields, though some of it borders on boilerplate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with purpose but dense and repetitive ('Deterministic OpenChainGraph compute node' restated), and the closing FV-status/receipt paragraph is long boilerplate that does not help an agent decide or call the tool. The compute-mode sentence duplicates the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the description covers provenance, upstream dependencies, data handling, and compute modes. For a 4-param nested compute node this is largely complete, missing only the conceptual outcome of the pack and any prerequisites/permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute enum semantics are already documented in the schema, so the description's re-explanation of compute modes is largely redundant. It adds no new meaning for parent_hashes, parent_tool_ids, or policy_parameters beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb+resource (builds/exports a TRAIGA Safe Harbor Pack as an AP2 artifact with execution_hash) and names the upstream artifacts it consumes (art-313-traiga-exposure-assessor, art-174-nist-ai-rmf-function-mapper). It is clearly a ChainGraph compute node. However, it never explains in domain terms what a 'safe harbor pack' is or what decision it supports, and it does not differentiate itself from near-siblings like build_chaingraph, emit_chaingraph_artifact, or export_artifact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational guidance ('Use synthetic or anonymised inputs only') and rules for the compute enum (auto/server/browser, gpu:true always delegates). But there is no when-to-use vs when-to-use-something-else guidance or prerequisites relative to the many sibling pack-building tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_validator_change_control_receiptValidator Change-Control ReceiptA
Read-onlyIdempotent
Inspect

Validator Change-Control Receipt: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-497-validator-change-control-receipt.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofNo
authorizedNo
exceptionsNo
change_typeNo
prior_weightNo
weight_deltaNo
quorum_statusNo
validator_refNo
effective_epochNo
quorum_achievedNo
quorum_requiredNo
posterior_weightNo
change_type_validNo
share_of_total_pctNo
total_stake_weightNo
authorization_chainNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral facts beyond them: inputs are processed transiently and never stored, logged or retained; synthetic inputs only; gpu:true nodes always delegate to browser; and the FV-status file is a snapshot that verifies offline. These are meaningful operational disclosures that the annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the tool identity, which is good, but the body is a dense run-on that repeats compute-mode rules already present in the schema and embeds a long URL and hash. Some of that infrastructure text does not earn its place in a selection-focused description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param compute/build node with an output schema (so return shape needn't be explained), the description covers compute routing, privacy constraints, artifact output and chaining inputs. An agent has enough to invoke it correctly; only the trigger condition for choosing this receipt over siblings is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four params including the compute enum and the parent_hashes/parent_tool_ids chaining. The description largely restates the compute-mode semantics rather than adding new parameter detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and role: a deterministic OpenChainGraph compute node in the compliance_control domain that exports an AP2 artifact with an execution_hash for chain provenance. This makes the tool's output identifiable without opening the schema. It does not, however, distinguish itself from the numerous sibling build_* receipt tools beyond naming the artifact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers limited context: choose compute 'auto' vs 'server' vs 'browser', and it constrains inputs to synthetic/anonymised data. But it never says when to use this receipt versus sibling builders (e.g. build_allocation_decision_receipt) or what precondition triggers it. Usage is implied, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_vop_session_receiptVoP Session Receipt BuilderB
Read-onlyIdempotent
Inspect

VoP Session Receipt Builder: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-376-score-payee-name-match. Open at: https://ainumbers.co/chaingraph/art-377-build-vop-session-receipt.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
session_idNo
attempt_countNo
session_outcomeNo
final_match_bandNo
session_receiptsNo
chain_genesis_hashNo
final_receipt_hashNo
warning_overriddenNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses that inputs are processed transiently and 'not stored, logged, or retained', that browser mode returns a delegation URL, and that the FV-status file is a snapshot verifiable offline. These are substantive behavioral facts an agent cannot get from the annotations alone. It stops short of auth/permission or rate-limit details, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens by restating the title, then immediately repeats itself ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node'), and pads the end with a raw URL and a 64-character hash. The compute-mode and data-handling content is useful, but it is buried under framework boilerplate and a long FV-status clause that is not needed to invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain returns, and it correctly focuses on compute-mode behavior, input hygiene, upstream chaining, and offline verification. Given the annotations and full schema coverage, this is close to sufficient; only the absence of any routing guidance relative to the many sibling receipt builders leaves a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description repeats the compute-mode semantics already in the schema and adds no field-level detail the schema lacks. Baseline 3 applies when the schema carries parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (VoP session receipt) and says it 'Exports an AP2 artifact with execution_hash', which is a concrete output. However, it leads with framework jargon ('OpenChainGraph compute node (compliance_mandate)') rather than a plain verb, and never distinguishes itself from close siblings like build_session_receipt or build_idv_session_receipt. An agent can guess the purpose but is not steered clearly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real usage context: compute mode selection rules (auto/server/browser, gpu:true always delegates), a data-handling constraint ('Use synthetic or anonymised inputs only'), and names the upstream artifact it consumes (art-376-score-payee-name-match). It never says when to prefer this tool over the sibling receipt builders, so usage is implied rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_basis_risk_nii_shockIRRBB Basis-Risk NII Shock CalculatorC
Read-onlyIdempotent
Inspect

IRRBB Basis-Risk NII Shock Calculator: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-443-irrbb-basis-risk-nii-shock-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
conventionNo
is_materialNo
index_resultsNo
horizon_monthsNo
parallel_delta_niiNo
total_net_exposureNo
reference_shock_bpsNo
basis_risk_delta_niiNo
material_threshold_pctNo
total_nii_contributionNo
basis_risk_pct_of_parallelNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description adds genuinely useful behavior: server vs. browser compute delegation semantics, gpu:true always delegating, transient processing with no storage/logging/retention, and emission of an AP2 artifact with execution_hash for chain provenance. This is meaningful disclosure the annotations do not carry, though it never says what the tool returns or how failures surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is crammed into the first clause and then buried under infrastructure boilerplate, a marketing URL, and an FV-status receipt paragraph with a long hash that offers no operational value to an agent deciding how to call the tool. Much of the text does not earn its place in a tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and annotations cover the safety profile; the description does explain compute delegation, non-retention and provenance export. However it leaves the actual decision-function inputs (policy_parameters field names) entirely unspecified, which is a real gap for a parameterized financial compute node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description largely repeats the compute-mode semantics already in the schema and adds no syntax or format detail for policy_parameters (it defers to 'the tool's manifest'), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause names a specific verb+resource (IRRBB basis-risk NII shock calculation), which is more than a tautology, but it is immediately followed by generic 'OpenChainGraph compute node' boilerplate rather than any differentiation from near-identical siblings such as evaluate_irrbb_sot_nii, calculate_irrbb_eve_shocks, or evaluate_irrbb_sot_eve. An agent cannot tell from the text why it should pick this tool over those.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when/when-not guidance and no reference to alternative IRRBB tools. The closest thing to guidance is 'Use synthetic or anonymised inputs only', which is a data-handling constraint, not a statement of when this tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_cbam_embedded_emissionsCBAM Embedded-Emissions CalculatorC
Read-onlyIdempotent
Inspect

CBAM Embedded-Emissions Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-68-carbon-compliance-fit-diagnostic, art-70-cbam-default-value-resolver, art-72-cbam-precursor-emissions-aggregator. Output feeds: art-71-cbam-certificate-cost-engine, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-69-cbam-embedded-emissions-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
basisNo
cn_codeNo
referenceNo
see_totalNo
see_directNo
see_indirectNo
good_categoryNo
quantity_tonnesNo
country_of_originNo
data_quality_flagNo
monitoring_methodNo
default_markup_appliedNo
precursor_contributionNo
total_embedded_emissions_tco2eNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the bar is lower, and the description adds genuinely useful context beyond them: inputs are processed transiently and not stored, logged, or retained, and the compute path can return a browser delegation URL. The execution_hash/AP2 export note is also helpful provenance disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dense with infrastructure trivia (full URLs, FV-status hash, artifact IDs) while the actual purpose is never front-loaded. 'OpenChainGraph compute node' is stated twice in consecutive sentences, and only minor value survives trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Technical needs are largely covered by the annotations, the rich schema, and the presence of an output schema, and the description covers delegation, chaining, and data-handling. What remains missing is the domain-level explanation of the calculation itself and the policy_parameters fields, so it is adequate but incomplete for a compliance computation node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3 applies: 'compute' is fully documented in the schema and policy_parameters merely defers to 'the tool's manifest' for field names. The description adds no parameter meaning beyond what the structured schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Beyond restating the name ('CBAM Embedded-Emissions Calculator'), the description never says what the computation actually does — what inputs (goods, CN codes, production routes) map to what result. The upstream/downstream artifact lists hint at the domain but the core verb+object is left as a tautology, and no sibling (e.g. aggregate_cbam_precursor_emissions, resolve_cbam_default_value) is contrasted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to choose this tool over the CBAM siblings or in what workflow stage it belongs. The compute-mode discussion ('auto' vs 'browser') is execution plumbing already in the schema, not selection guidance. No prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_cecl_ecl_allowanceCECL Expected Credit Loss & Allowance CalculatorB
Read-onlyIdempotent
Inspect

CECL Expected Credit Loss & Allowance Calculator: OpenChainGraph compute node (credit_assessment). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-426-cecl-ecl-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
methodNo
segmentsNo
boundary_noteNo
segment_countNo
disambiguationNo
recoveries_usdNo
charge_offs_usdNo
forecast_weightsNo
constants_versionNo
delta_vs_required_usdNo
provision_expense_usdNo
reconciliation_balancedNo
prior_allowance_balance_usdNo
total_required_allowance_usdNo
reconciled_ending_allowance_usdNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already declare readOnly, idempotent, non-destructive, closed-world), the description discloses genuinely useful behavior: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs should be used, and an AP2 artifact with execution_hash is exported for provenance. This is real added context, though it does not quantify limits or describe failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode and data-handling sentences earn their place, but the text is a dense run-on that front-loads the title and buries the useful behavioral facts in a wall of shared boilerplate (FV-status, offline receipt, artifact provenance). Trimming the receipt/verification prose would improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema and annotations are supplied, so return values and the safety profile need not be restated. However, for a compute node whose actual inputs live in an opaque policy_parameters object, the description never tells the agent what it must supply to get a meaningful CECL allowance result, which is a real completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters including compute, parent_hashes, parent_tool_ids and policy_parameters are already documented. The description repeats the compute mode semantics but adds no field-level meaning, and leaves policy_parameters to 'the tool's manifest', so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase 'CECL Expected Credit Loss & Allowance Calculator' names a verb and resource, but it is essentially the tool title restated, and the body only adds the category label 'credit_assessment'. It never explains what the calculation actually does (e.g. derives an allowance from loan-segment inputs), so it does little to separate this tool from credit-related siblings like score_credit_default_risk or compute_rbc_action_level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no named alternative. The only conditional text concerns compute modes (server vs browser), which is an execution detail rather than a selection criterion for choosing this tool over a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_claims_stp_economicsClaims STP Economics CalculatorB
Read-onlyIdempotent
Inspect

Claims STP Economics Calculator: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-254-compute-rbc-action-level. Open at: https://ainumbers.co/chaingraph/art-257-calculate-claims-stp-economics.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
npvNo
irr_pctNo
pii_noteNo
table_sourceNo
payback_yearsNo
table_versionNo
annual_cashflowsNo
leakage_increaseNo
not_legal_adviceNo
projection_yearsNo
regulatory_basisNo
discount_rate_pctNo
leakage_reductionNo
target_stp_claimsNo
cost_reduction_pctNo
current_stp_claimsNo
net_annual_benefitNo
net_leakage_impactNo
target_annual_costNo
current_annual_costNo
target_manual_claimsNo
current_manual_claimsNo
annual_handling_savingsNo
cost_reduction_per_claimNo
stp_rate_improvement_pptNo
target_avg_cost_per_claimNo
current_avg_cost_per_claimNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, it discloses transient processing with no storage or logging, server-vs-browser delegation semantics, the browser delegation URL return path, and an execution_hash AP2 artifact for provenance. That is meaningful behavior not captured by the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute/privacy/provenance content is front-loaded and earns its place, but the trailing FV-status paragraph with a 64-hex filename and URL is noise an agent cannot use for tool selection. Overall readable but padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full-coverage schema, an output schema, and safety annotations, the definition covers the compute-mode contract, input-handling policy, chaining inputs and artifact output. The main omission is any description of the decision function's domain, but for a compute node it is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented in the schema; the description's compute-mode text largely duplicates the schema's own enum description. Baseline 3 is appropriate since the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It labels the resource ('Claims STP Economics Calculator', 'analytics_mandate' compute node) but never states the specific verb/operation or what economics are calculated, effectively restating the name and title. With dozens of '*_economics' and 'model_*' siblings, an agent gets no basis to distinguish this from them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode defaults and notes 'Use synthetic or anonymised inputs only' and an upstream dependency (art-254-compute-rbc-action-level), but gives no when-to-use/when-not or alternative-tool routing. Context exists but selection guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_csdr_penaltyCSDR Cash-Penalty CalculatorB
Read-onlyIdempotent
Inspect

CSDR Cash-Penalty Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-77-t1-settlement-readiness-diagnostic. Output feeds: art-83-buy-in-exposure-modeler, art-84-settlement-efficiency-kpi, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-78-csdr-penalty-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
notionalNo
fail_daysNo
referenceNo
asset_classNo
batch_detailNo
penalty_typeNo
daily_rate_bpsNo
partial_creditNo
penalty_amountNo
reference_priceNo
rate_table_versionNo
partial_settled_pctNo
batch_total_exposureNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description goes further by disclosing compute routing (auto/server/browser, gpu:true always delegates), transient non-retention of inputs, the synthetic-data-only constraint, and emission of an AP2 artifact with execution_hash. These are real behavioral traits not available in the structured fields, though it never states whether the operation can fail or what side effects chaining produces.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool identity and keeps related operational facts together, but the second sentence redundantly restates 'OpenChainGraph compute node' and the closing URL plus full FV-status hash paragraph ('a snapshot, not a subscription') is noise an agent cannot act on. Roughly a third of the text does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and an output schema present, the definition covers the operational essentials an agent needs: compute mode semantics, data-handling constraints, and upstream/downstream chain provenance, so return values need not be explained. The remaining gap is that the actual decision function and policy_parameters field names are deferred to an external manifest rather than described here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters are documented in the schema, so the baseline is 3. The description restates the compute modes already described in the schema and adds only 'See the tool's manifest for field names' for policy_parameters without supplying them, so it contributes little parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name convey the resource (CSDR cash penalty) and the verb (calculate), and the description frames it as a ChainGraph compute node. However, it never explains what the computation actually is or what a CSDR cash penalty represents, and it does not differentiate from the near-identical sibling recompute_csdr_penalty. Much of the text is infrastructure meta rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives implicit chain-position guidance via 'Consumes upstream artifacts from: art-77-t1-settlement-readiness-diagnostic' and the downstream consumers, which tells an agent where this tool sits in a pipeline. But there is no explicit when-to-use/when-not guidance and no routing against the overlapping recompute_csdr_penalty sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_erc2981_royaltyERC-2981 Royalty CalculatorC
Read-onlyIdempotent
Inspect

ERC-2981 Royalty Calculator: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-608-erc2981-royalty-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
findingsNo
receiverNo
not_provenNo
sale_priceNo
scope_noteNo
related_toolsNo
royalty_fraction_bpsNo
effective_royalty_pctNo
overall_determinationNo
claimed_royalty_amountNo
computed_royalty_amountNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the description usefully adds traits they cannot carry: deterministic execution, server-side vs browser delegation semantics, transient processing with no storage or logging, the synthetic-inputs-only requirement, and the exported AP2 artifact carrying execution_hash for provenance. This is substantive behavioural context beyond the annotations, though the FV-status snapshot sentence is more receipt boilerplate than agent-relevant behaviour.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with the tool name, but it repeats 'OpenChainGraph compute node' twice in consecutive sentences and closes with an 'Open at:' URL and an FV-status hash receipt that do not help an agent select or invoke the tool. Several sentences are branding/verification boilerplate rather than invocation-relevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile; the description does cover compute routing, data handling and provenance. However, for a 4-parameter tool with a nested policy_parameters object, it never explains what the decision function expects, deferring entirely to 'see the tool's manifest'. That leaves a real invocation gap, making the definition only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, including the compute enum. The description repeats the compute-mode semantics and gestures at chain provenance but adds no field-level meaning (e.g. how parent_hashes/parent_tool_ids must pair, or what keys policy_parameters expects). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence restates the title verbatim ('ERC-2981 Royalty Calculator') and then categorises it as an OpenChainGraph compute node, but never says what it actually computes (e.g. royalty amount owed for a token sale under ERC-2981) or how it differs from the many other calculate_* siblings. Beyond the name, the agent gets infrastructure context rather than operational purpose. This is essentially a tautological restatement plus category label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, prerequisites, or named alternatives appear anywhere in the description. The compute-mode guidance is about how execution is routed, not about when an agent should select this tool over a sibling. Nothing routes the agent among the hundreds of calculate_*/compute_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_irrbb_eve_shocksIRRBB EVE Shock CalculatorB
Read-onlyIdempotent
Inspect

IRRBB EVE Shock Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-184-irrbb-sot-eve-evaluator. Open at: https://ainumbers.co/chaingraph/art-183-irrbb-eve-shock-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
shocksNo
buckets_usedNo
total_net_gapNo
worst_scenarioNo
worst_delta_eveNo
reference_parallel_shock_bpsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds meaningful operational context: server vs browser compute selection, gpu delegation, transient processing with no storage/logging/retention, the synthetic/anonymised input requirement, and AP2 artifact export with execution_hash. It omits auth, rate-limit, and error behavior, but with annotations covering safety the added disclosure is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single dense paragraph that front-loads the title and node type, but it repeats "OpenChainGraph compute node" and includes a long FV-status receipt sentence that does not help an agent invoke the tool. It is serviceable but not tightly edited.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a chained compute node with an output schema and rich annotations, the description covers execution mode, privacy, provenance, and downstream consumption. However, it does not explain the domain semantics of policy_parameters or tell the agent which fields are required, leaving a critical invocation gap despite the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode default and browser behavior but adds no syntax or semantic detail for chaining or policy_parameters, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an "IRRBB EVE Shock Calculator" and an OpenChainGraph compute node, so its domain is apparent, but it never states in plain terms what the calculation does or which IRRBB EVE shocks it covers. It also does not differentiate from closely named siblings such as evaluate_irrbb_sot_eve or calculate_basis_risk_nii_shock.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It notes that output feeds art-184-irrbb-sot-eve-evaluator, implying one workflow position, but gives no explicit when-to-use guidance, prerequisites, or alternatives. It does not say when to choose this over evaluate_irrbb_sot_eve or other IRRBB tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_mica_own_fundsArt 67 Own-Funds CalculatorA
Read-onlyIdempotent
Inspect

Art 67 Own-Funds Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-100-mica-casp-authorization-readiness. Output feeds: cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-101-mica-art67-own-funds-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
form_noteNo
binding_basisNo
form_eligibleNo
own_funds_heldNo
permanent_minimumNo
reference_versionNo
surplus_shortfallNo
required_own_fundsNo
fixed_overheads_quarterNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description goes further with genuinely new behavior: deterministic computation, dual compute modes, transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash for provenance. The compute-mode detail partially overlaps the schema's `compute` description, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the text is repetitive: the title is restated, then 'OpenChainGraph compute node' appears twice in near-identical sentences, and the FV-status sentence is dense legalese. Several sentences could be merged without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and annotations cover safety. The description additionally supplies upstream/downstream chain relationships and the compute-mode contract, making it sufficiently complete for a deterministic compute node, though the chain endpoints are named only by tool-id without explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema, making 3 the baseline. The description adds only the general note that inputs are computed server-side or browser-side, and that policy_parameters are function inputs — no field-level semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and domain: MiCA Art 67 own-funds calculation via an OpenChainGraph compute node. An agent can identify the domain (prudential own-funds computation) unambiguously. It does not clearly distinguish itself from the many other 'calculate_*' financial-ratio siblings, but the MiCA framing is specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through chain position ('Consumes upstream artifacts from art-100...', 'Output feeds cry-04...'), which tells the agent where it fits in a pipeline. However, there is no explicit statement of when to use this versus alternatives, and no prerequisites are stated beyond 'use synthetic inputs only'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_naic_clo_rbc_factorNAIC CLO/CBO/CDO Tranche RBC Factor CalculatorC
Read-onlyIdempotent
Inspect

NAIC CLO/CBO/CDO Tranche RBC Factor Calculator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-618-naic-clo-rbc-factor-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, non-destructive, and closed-world, so the safety profile is established. The description adds genuinely new behavioral context beyond that: inputs are processed transiently and not stored/logged/retained, and the tool exports an AP2 artifact carrying an execution_hash for chain provenance. It does not, however, disclose what the computation actually returns or any input validation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense run-on of boilerplate covering compute binding, privacy, artifact export, and a raw FV-status hash URL. The substantive domain purpose never appears, while low-value infrastructure detail (including a 64-character hash path) consumes most of the length. Front-loading favors repeated title text over anything an agent needs to decide or call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object tool with no output schema, the description is incomplete where it matters: an agent still cannot tell what policy_parameters fields to supply or what the computed output represents. It does explain execution/delegation and privacy behavior, but the core domain contract is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description merely paraphrases the compute-mode semantics already fully spelled out in the schema and adds nothing about parent_hashes/parent_tool_ids. Critically, it gives no help with policy_parameters, whose schema description defers to an external manifest — the description could have compensated there but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence is a verbatim restatement of the title, and the rest of the description describes compute infrastructure rather than the NAIC RBC factor calculation itself. The name/title alone tell an agent what resource is involved (CLO/CBO/CDO tranche RBC factors), but the description adds no domain explanation and does nothing to distinguish it from siblings like compute_rbc_action_level or map_call_report_schedule_rc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to choose this tool versus any sibling, and no prerequisites or input conditions are given. The only directive-like content is 'Use synthetic or anonymised inputs only,' which is a data-handling constraint, not usage guidance. The compute-mode explanation describes a parameter, not when to invoke the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_nis2_penalty_exposureNIS2 Penalty Exposure Calculator (Art. 34)B
Read-onlyIdempotent
Inspect

NIS2 Penalty Exposure Calculator (Art. 34): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-142-nis2-art21-gap-checker. Open at: https://ainumbers.co/chaingraph/art-143-nis2-penalty-exposure-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
max_penalty_eurNo
entity_classificationNo
turnover_pct_exposureNo
infringement_breakdownNo
mitigated_estimate_eurNo
mitigating_factors_appliedNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, the description discloses meaningful behavior: compute-mode execution semantics (auto/server/browser, browser delegation URL), that inputs are processed transiently and never stored/logged/retained, and that an AP2 artifact with execution_hash is exported for provenance. That is substantial context an agent could not infer from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded and grammatically efficient, but bloated with infrastructure detail an agent does not need to invoke it — notably a long FV-status SHA-256 hash and the artifact URL. Several sentences (provenance, FV receipt) could be trimmed without losing selection-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers compute behavior, privacy handling, provenance export, and the upstream artifact dependency. For a 4-parameter compliance compute node the coverage is strong, with only the specifics of the decision logic left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes the compute-mode semantics already stated in the schema and adds no new meaning about the parameters (e.g., what fields policy_parameters accepts). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource and legal basis ('NIS2 Penalty Exposure Calculator (Art. 34)') and labels the tool a 'compliance_mandate' compute node, so the general intent is legible. However, it never explains what the calculation actually yields (e.g., max fine ranges, turnover-based exposure) and draws no boundary against siblings like calculate_csdr_penalty or score_nis2_incident_significance. It largely restates the title plus a runtime category.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied. It notes the tool 'Consumes upstream artifacts from: art-142-nis2-art21-gap-checker' and warns 'Use synthetic or anonymised inputs only', which hints at a workflow and prerequisites. But there is no explicit when-to-use / when-not-to-use guidance or named alternative for adjacent NIS2 calculators.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_repo_haircutOn-Chain Repo Haircut CalculatorB
Read-onlyIdempotent
Inspect

On-Chain Repo Haircut Calculator: OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: 505-tokenized-collateral-eligibility-checker, 506-onchain-cash-leg-finality-checker. Open at: https://ainumbers.co/tools/508-repo-haircut-collateral-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
flagsNo
vm_thresholdNo
initial_marginNo
base_haircut_pctNo
sft_floor_appliedNo
total_haircut_pctNo
canton_haircut_pctNo
legacy_haircut_pctNo
weekend_saving_pctNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description meaningfully adds beyond them: transient processing with no storage/logging/retention, deterministic execution, and export of an AP2 artifact carrying execution_hash for chain provenance. It stops short of disclosing failure modes or determinism guarantees for the server vs browser paths, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first resources are explained early, but the passage is dense with infrastructure jargon and appends a long FV-status URL and a 64-hex receipt hash that do not help an agent decide or call the tool. The core disclosure sentences (transient processing, AP2 export) earn their place; the trailing receipt pointer does not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the read-only annotations plus provenance notes cover the safety story. The gap is the decision inputs: for a calculator, an agent still needs the policy_parameters field names, which are delegated to an external manifest rather than described here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and the purpose of policy_parameters; that sets the baseline at 3. The description does not name any actual policy_parameters fields (it defers to 'the tool's manifest'), so it adds little parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title state a specific verb+resource (calculate repo haircut) and the description identifies it as an OpenChainGraph compute node in the collateral_mandate family, plus names the downstream tools it feeds (505-tokenized-collateral-eligibility-checker, 506-onchain-cash-leg-finality-checker). However, the body spends most of its words on compute-routing and provenance mechanics rather than on what the haircut calculation actually is, so differentiation from near-name siblings like compute_stock_token_collateral_haircut or compute_basel_haircut_adjusted_exposure rests mostly on the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states a data-handling rule ('Use synthetic or anonymised inputs only') and explains compute-mode routing, but gives no guidance on when to choose this tool over the many similar collateral/haircut siblings. No prerequisites, no when-not-to-use, no alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_solvency2_scr_ratioSolvency II SCR Ratio CalculatorC
Read-onlyIdempotent
Inspect

Solvency II SCR Ratio Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-181-sii-ifrs17-reconciliation-bridger. Open at: https://ainumbers.co/chaingraph/art-180-solvency2-scr-ratio-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
mcrNo
scrNo
tiering_okNo
mcr_breachedNo
scr_breachedNo
tier3_limit_okNo
tier3_pct_of_scrNo
eligible_own_fundsNo
mcr_coverage_ratioNo
scr_coverage_ratioNo
tier1_total_limit_okNo
tier1_total_pct_of_scrNo
tier1_unrestricted_limit_okNo
tier1_unrestricted_pct_of_scrNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real substance on top: deterministic execution, server-vs-browser delegation semantics, transient processing with no storage/logging/retention, and the AP2 artifact plus execution_hash emitted for chain provenance. The privacy and provenance traits are not derivable from the annotations or schema and materially affect how an agent should treat the call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The body is dominated by boilerplate (compute binding, URL, FV-status hash, 'snapshot, not a subscription' disclaimer) that displaces the actual purpose statement. The first useful sentence about the domain never arrives, and the reader must wade through infrastructure prose to find the few operational facts that matter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described, and the description covers provenance, privacy, and compute routing. What is missing is the domain payload: what policy_parameters expects for an SCR ratio and how the result is consumed by the named downstream bridger. For a nested-object calculation tool, that leaves a genuine gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely restates the compute-mode semantics and adds nothing concrete about policy_parameters fields, explicitly deferring to 'the tool's manifest'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title line names a specific verb+resource (Solvency II SCR ratio calculation) and distinguishes it from the sibling aggregate_solvency2_scr_modules, which aggregates modules rather than computing the ratio. However, almost none of the description explains what the calculation actually is; the body is infrastructure boilerplate about compute nodes, artifact exports, and FV-status receipts, so an agent learns the topic but not the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a single constraint ('Use synthetic or anonymised inputs only') and a downstream consumer named ('Output feeds: art-181-sii-ifrs17-reconciliation-bridger'), but no statement of when to pick this tool over alternatives, no prerequisites, and no exclusions. The compute-mode prose is operational, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_xvaXVA / CVA CalculatorA
Read-onlyIdempotent
Inspect

XVA / CVA Calculator: OpenChainGraph compute node (risk_parameter). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: qfa-01-options-greeks. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/qfa-04-xva-cva-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cvaNo
dvaNo
fvaNo
xvaNo
n_pathsNo
n_stepsNo
verdictNo
peak_epeNo
cva_basisNo
dva_basisNo
fva_basisNo
xva_risk_ratingNo
compliance_flagsNo
peak_epe_pct_notionalNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely useful behavior beyond that: transient processing with no storage or logging, an AP2 artifact with execution_hash for provenance, and a verifiable FV-status snapshot. That is meaningful disclosure of data-handling and output-provenance traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core facts are front-loaded, but the passage trails into verbose prose about the FV-status receipt verifying offline and chain-provenance framing that does not help an agent decide or invoke. Several sentences could be cut without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the schema fully covers parameters. The description supplies the compute-mode context, data-handling policy, and chain wiring (upstream qfa-01, downstream ptg-01), leaving little an agent needs missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including compute, parent_hashes, parent_tool_ids) are already documented in the schema. The description largely restates the compute enum semantics and adds no field-level meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource (XVA/CVA compute node, risk_parameter) and the title repeats it, so an agent knows it computes XVA/CVA. However, it never states what inputs produce what output beyond 'policy_parameters', and it does not differentiate itself from the many other compute_* siblings. Clear but not distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the compute modes ('auto', 'server', 'browser') and when gpu:true delegates, which is a usage decision, and names upstream/downstream chain nodes. But there is no guidance on when an agent should choose this tool over alternatives such as compute_options_greeks or compute_portfolio_var.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

camt053_parseParse and structurally validate a camt.053.001 bank statementA
Read-onlyIdempotent
Inspect

Parses a camt.053.001 bank-to-customer statement XML document with the same schema-subset structural and facet checks as the tools/565 browser reconciliation workbench (IBAN mod-97, BIC, currency, date/decimal facets), returning the extracted statement (message id, statement id, account IBAN/currency, balances, entries) on success or the structural error list on failure. Byte-identical extraction to the browser tool for the same input. Read-only parse -- feed the result to recon_match for reconciliation.

ParametersJSON Schema
NameRequiredDescriptionDefault
xmlYescamt.053.001 XML statement document text to parse.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description includes specific validation details (IBAN mod-97, BIC, currency, etc.) and confirms read-only and idempotent behavior, consistent with annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each adding value: purpose, consistency with another tool, and usage recommendation. Front-loaded with main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description lists extracted fields and error handling, making it complete for a simple parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter. The description adds context about the document type and expected content (e.g., account IBAN/currency), but does not provide syntax examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it parses a camt.053.001 XML document, performs structural and facet checks, and returns extracted data or errors. It distinguishes from siblings by noting it is a read-only parse for reconciliation input.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'feed the result to recon_match for reconciliation', indicating usage context. However, it does not mention when not to use it or compare to the sibling 'parse_camt053_reconciliation'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

certify_license_electionLicense Election CertifierA
Read-onlyIdempotent
Inspect

License Election Certifier: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-197-pil-flavor-mapper, art-196-cant-be-evil-license-selector, art-195-creative-commons-license-chooser. Output feeds: art-200-license-election-verifier. Open at: https://ainumbers.co/chaingraph/art-199-license-election-certifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
terms_hashNo
certificateNo
all_checks_passNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behaviour beyond them: transient processing with no storage, logging or retention, the synthetic-input-only requirement, the execution_hash provenance artifact, and the auto/server/browser execution split. The compute-mode text largely restates the schema, but the privacy and provenance disclosure is genuine added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool's role and chain position, but then spends several sentences restating the compute-mode enum that the schema already carries, plus a URL and a long FV-status receipt. The provenance content earns its place; the compute-mode paragraph does not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, chain-dependent compute node with an output schema, the description covers chain inputs/outputs, privacy posture, execution modes and the offline receipt. Missing only explicit sibling routing and any hint of what the certification decision function evaluates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description adds no format or semantics beyond what the schema provides (it only repeats compute modes and points at the manifest for policy_parameters), so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('License Election Certifier', deterministic OpenChainGraph compute node for a cryptographic mandate) and names the exact upstream artifacts consumed and the downstream verifier it feeds. It distinguishes itself structurally from siblings by its chain position, though it never contrasts itself with closest alternatives such as verify_license_election.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through chain positioning (it must consume art-195/196/197 and its output goes to art-200) and the constraint 'use synthetic or anonymised inputs only'. There is no explicit when-to-use versus verify_license_election or the selector/chooser siblings, so the agent must infer routing from the artifact IDs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_agency_eligibility_matrixAgency Eligibility MatrixB
Read-onlyIdempotent
Inspect

Agency Eligibility Matrix: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-223-conforming-loan-limit. Output feeds: art-221-llpa-stack. Open at: https://ainumbers.co/chaingraph/art-222-agency-eligibility-matrix.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
failsNo
checksNo
eligibleNo
pii_noteNo
max_dti_pctNo
max_ltv_pctNo
max_cltv_pctNo
table_sourceNo
eligible_flagNo
max_hcltv_pctNo
product_notesNo
table_versionNo
regulatory_basisNo
underwriting_typeNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely useful behavioral context beyond them: transient processing with no storage/logging/retention, synthetic-or-anonymised input requirement, deterministic execution, server-vs-browser delegation semantics, and the AP2 artifact with execution_hash. The only miss is the lack of any error/failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the node identity, but a large share of the text is infrastructure boilerplate that duplicates the `compute` schema description (server/browser/gpu delegation) and a long FV-status receipt paragraph. The compute-mode explanation is repeated rather than summarised.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the chain links are documented. The material gap is inputs: for a compute node the agent must supply decision parameters, yet policy_parameters is left as an opaque object pointing at an external manifest, and the description does not summarise what the eligibility computation needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema carries parameter semantics and the baseline is 3. The description's compute-mode paragraph largely restates the schema's own `compute` description rather than adding meaning, and it defers policy_parameters field names to 'the tool's manifest', adding no field-level detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title indicate a compliance computation about agency (mortgage) eligibility, and the description places it in a chain (consumes art-223-conforming-loan-limit, feeds art-221-llpa-stack), which helps disambiguate. But the description never states what the decision function actually checks or which agencies/limits it evaluates — most of the text is ChainGraph infrastructure boilerplate. An agent knows roughly what domain it is in but not what the node computes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the chain position (upstream/downstream artifact IDs) and by the compute-mode discussion, so an agent can infer it belongs between conforming-loan-limit and llpa-stack. There is no explicit when-to-use statement and no discrimination against nearby siblings like check_conforming_loan_limit or compute_llpa_stack.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_agent_attestationAgent Identity & Authorization Attestation CheckerB
Read-onlyIdempotent
Inspect

Agent Identity & Authorization Attestation Checker: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2027-12 (EU AI Act Annex III high-risk obligations (Digital Omnibus, Parliament final approval June 2026) push agent KYA toward compliance requirement from 2 December 2027; KYA-OS donated to DIF March 2026). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-01-ap2-mandate-chain-validator, art-13-eudi-wallet-credential-readiness-checker. Output feeds: art-02-agent-spend-policy-simulator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-04-agent-identity-attestation-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
failNo
passNo
warnNo
checksNo
scopesNo
root_agent_idNo
overall_statusNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the annotations: compute-mode behavior (auto/server/browser), transient processing with no storage/logging/retention, the synthetic-input constraint, and AP2 artifact export with execution_hash. It does not cover auth requirements or rate limits, but it goes well beyond the safety profile already supplied by readOnlyHint, idempotentHint, and destructiveHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is heavily bloated with regulatory deadline detail, Digital Omnibus dates, KYA-OS donation history, external URLs, and an FV-status snapshot hash. The core operation is not front-loaded, and many sentences do not help an agent decide whether or how to invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and the input schema is fully described, the description supplies ample context about compute binding, data handling, provenance chaining, and upstream/downstream artifacts. It still never states what the attestation check actually determines, but the remaining gap is partially covered by the schema's deferral to the tool manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters. The description restates the compute-mode semantics in prose but adds little beyond the schema's own compute parameter description, and it does not explain parent_hashes, parent_tool_ids, or policy_parameters beyond what the schema and manifest reference provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify a specific resource ('Agent Identity & Authorization Attestation') and a check operation, so an agent can broadly infer the domain. However, the description itself never explains what the check verifies or returns, and it does not distinguish this tool from siblings like validate_agent_audit_trail or validate_input_attestations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit when-to-use guidance, no exclusions, and no alternatives. The upstream/downstream artifact lists imply a pipeline position, but there is no instruction on when to select this tool versus other attestation or validation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_agent_token_scopeAgent Token Scope CheckerC
Read-onlyIdempotent
Inspect

Agent Token Scope Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-385-agent-token-scope-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
token_idNo
checks_runNo
enforcementNo
failing_checksNo
attenuation_depthNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description adds real context beyond them: transient processing with no storage or logging, AP2 artifact export with execution_hash for chain provenance, and browser-delegation behaviour for gpu:true or compute:"browser" cases. The compute-mode semantics partially duplicate the schema but the retention and provenance behaviour is new information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Roughly adequate length, but the front is platform boilerplate rather than the core purpose, and the trailing FV-status hash URL consumes a large share of the text without helping tool selection. The compute-mode sentence duplicates schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and an output schema present, the description need not explain returns, but it still leaves the central question unanswered: what the scope check verifies and what makes it pass or fail. For a compliance_mandate decision tool with an opaque policy_parameters object, that is a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode paragraph largely mirrors the schema's own compute property text and adds nothing about the opaque policy_parameters fields (which it defers to 'the tool's manifest').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence is a restatement of the title plus a platform label ("OpenChainGraph compute node (compliance_mandate)"). It never states what an 'agent token scope' check actually decides, what tokens are inspected, or what determination is produced, so it cannot be distinguished from siblings like audit_mcp_tool_scope_revocation or verify_kya_x402_scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no named alternative. The only usage-flavoured statement is the data-handling instruction "Use synthetic or anonymised inputs only," which constrains inputs rather than selecting the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_ai_act_art50_markingEU AI Act Art. 50 Marking CheckerC
Read-onlyIdempotent
Inspect

EU AI Act Art. 50 Marking Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-127-dual-layer-disclosure-verifier. Open at: https://ainumbers.co/chaingraph/art-126-ai-act-art50-marking-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive safety, but the description adds real behavioral context: compute mode semantics (server-side vs browser delegation, gpu:true always delegates), transient processing with no storage/logging/retention, determinism, and export of an AP2 artifact carrying execution_hash for chain provenance. The fv-status snapshot-vs-subscription note is also a useful offline-verification trait. Gaps remain on auth/permissions and result reporting, but it materially exceeds the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening two sentences are near-duplicates ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node'), and the text is back-loaded with a raw URL and a long fv-status hash that dilute the front-loading. Substantial boilerplate that would be better in shared documentation crowds out the actual tool semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 0 required parameters, the description carries the burden of explaining what the check returns and how policy_parameters drive the decision, yet it says only that an AP2 artifact is exported and points elsewhere for field names. The compliance question being answered (what constitutes Article 50 marking compliance) is never described, leaving a significant gap for a regulated-domain checker.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema. The description restates the compute enum semantics, which is redundant with the schema rather than additive, and says nothing extra about parent_hashes/parent_tool_ids ordering or policy_parameters field expectations. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title convey a specific verb+resource (checking EU AI Act Article 50 marking), but the description body never actually states what the check evaluates - it opens with infrastructure boilerplate ('OpenChainGraph compute node') and repeats itself. There is no differentiation from siblings like assess_ai_act_conformity, run_ai_act_highrisk_fit, or check_gpai_code_conformance. Purpose is inferable from the title but not reinforced in the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions selecting this over the many other AI Act tools, and no prerequisites. The only directive is the input constraint 'Use synthetic or anonymised inputs only,' and the mention that output feeds art-127-dual-layer-disclosure-verifier, which is chaining metadata rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_allocation_affirmationAllocation/Affirmation Conformance CheckerA
Read-onlyIdempotent
Inspect

Allocation/Affirmation Conformance Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-77-t1-settlement-readiness-diagnostic. Output feeds: art-82-securities-settlement-message-linter, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-81-allocation-affirmation-conformance.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
referenceNo
on_time_rateNo
total_eventsNo
cutoff_appliedNo
dual_date_noteNo
events_flaggedNo
on_time_eventsNo
cutoff_timezoneNo
format_nonconformance_countNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, but the description adds real value beyond them: transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, server-vs-browser compute routing, and the emission of an AP2 artifact with an execution_hash. That is meaningful operational context the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The information is mostly load-bearing but delivered as an unstructured run-on that mixes purpose, compute modes, retention policy, provenance chaining, URL, and receipt verification in one block. Front-loading the title helps, but the pacing is poor and a reader cannot easily separate the operational contract from the provenance metadata.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description covers compute behavior, data handling, and chain provenance well. The gap is the core decision function: policy_parameters is an open object and the description defers field names to an external manifest, so an agent still does not know what inputs this check actually evaluates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation largely duplicates the schema's own wording and adds nothing about the free-form policy_parameters or the hash/ID pairing requirement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause names a specific verb+resource (an allocation/affirmation conformance checker), which is concrete enough for an agent to grasp the domain. However, it is immediately followed by compute-node mechanics, and nothing distinguishes it from the many other 'check_*_conformance' siblings beyond the resource noun.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use statement, but the 'Consumes upstream artifacts from: art-77...' and 'Output feeds: art-82..., cry-04...' lines imply the tool's position in a chain. That is implied guidance at best; an agent must infer the trigger conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_assessor_independenceSwift CSP Assessor Independence EligibilityC
Read-onlyIdempotent
Inspect

Swift CSP Assessor Independence Eligibility: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-487-assessor-independence-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eligibleNo
cert_eligibleNo
date_eligibleNo
route_eligibleNo
assessment_dateNo
assessment_routeNo
architecture_typeNo
failing_predicateNo
attestation_deadlineNo
independence_eligibleNo
overlapping_identitiesNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already cover the safety profile (read-only, idempotent, non-destructive), so the bar is lower, and the description adds genuinely useful behavior beyond them: server-vs-browser compute semantics, browser delegation URLs for gpu:true nodes, transient non-retention of inputs, and AP2 artifact export with execution_hash. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It leads with infrastructure boilerplate instead of the tool's function, and contains redundancy ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'). The verbatim FV-status URL and hash dominate the tail and crowd out what the check does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return formatting need not be explained, and privacy/compute behavior is covered. However, for a compliance check the description omits the substantive scope of the independence test and defers field names to 'the tool's manifest' without indicating where that is, leaving the core decision semantics under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics already in the schema and links execution_hash to chaining, adding marginal value; baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title and classifying the node as an 'OpenChainGraph compute node (compliance_mandate)' rather than stating what the independence check actually evaluates or decides. An agent knows this is a compliance-mandate computation but gets no functional criteria (what makes an assessor independent), so the purpose stays vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not, or sibling routing is given (e.g., vs. attest_calc_agent_independence, check_sod_matrix, or other independence/eligibility checks). The only directive is 'Use synthetic or anonymised inputs only', which is a data-handling rule, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_camera_provenanceCamera-Provenance CheckC
Read-onlyIdempotent
Inspect

Camera-Provenance Check: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-359-idv-session-receipt-builder. Open at: https://ainumbers.co/chaingraph/art-361-camera-provenance-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rejectedNo
has_actionsNo
manifest_validNo
has_hard_bindingNo
manifest_presentNo
missing_elementsNo
provenance_labelNo
capture_chain_fieldNo
digital_source_typeNo
trained_algorithmic_media_flaggedNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs only, and it exports an AP2 artifact carrying execution_hash for chain provenance. These retention/privacy and output-side traits go meaningfully past the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with infrastructure boilerplate, repeats the compute:'auto' explanation, and appends a URL plus a long FV-status hash path of marginal invocation value. The actual purpose is never front-loaded; the reader must wade through execution-mode detail to learn what the check is.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described, and annotations cover safety. The description does convey execution modes, retention behavior, artifact export, and the downstream consumer (art-359-idv-session-receipt-builder), which is decent. But it explicitly punts the decision-function fields to 'the tool's manifest' and never states what the check evaluates, leaving a real gap for a compliance-control node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter (compute, parent_hashes, parent_tool_ids, policy_parameters) is documented in the schema itself. The description largely restates the compute-mode semantics already present in the schema and adds no real new parameter meaning. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title and the phrase 'OpenChainGraph compute node (compliance_control)' gesture at a deterministic check on camera provenance, giving a verb+resource. However, the description never explains what the check actually verifies (e.g. C2PA assertions, capture integrity), and it does nothing to differentiate itself from provenance-adjacent siblings like decode_c2pa_aiml_assertions or verify_content_credential_signature. Most of the text is about execution infrastructure rather than the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, nor any prerequisites or trigger conditions. The compute-mode explanation addresses how the node executes, not when an agent should select this check over the many other provenance/compliance checks in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_capital_adequacy_privatePrivate-Input Capital Adequacy CheckB
Read-onlyIdempotent
Inspect

Private-Input Capital Adequacy Check: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-415-check-capital-adequacy-private.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierNo
pii_noteNo
above_minimumNo
not_legal_adviceNo
regulatory_basisNo
regulatory_minimum_pctNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds real operational context: inputs are processed transiently and never stored/logged/retained, execution is deterministic, gpu:true nodes always delegate to the browser, and the call exports an AP2 artifact carrying execution_hash. The privacy/retention statement in particular is information an agent cannot get from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the node/compute semantics, which is the most useful part, but it is bloated near the end by a raw tool URL and a 64-character FV-status hash embedded mid-sentence. Those tokens do not help an agent select or call the tool and dilute an otherwise reasonably organized payload.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% parameter coverage, the description need not explain return values, and it does cover the compute/privacy/artifact mechanics completely. What is missing is the substantive domain content — what the capital adequacy check evaluates and under which standard — which matters for correct tool selection in a crowded sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The compute-mode sentence in the description largely duplicates the schema's own enum description verbatim, and policy_parameters adds nothing beyond "See the tool's manifest for field names," which is also in the schema. No semantic value is added over structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The body opens by restating the name/title ("Private-Input Capital Adequacy Check: OpenChainGraph compute node") and then spends almost all its text on compute plumbing rather than on what the capital-adequacy decision function actually evaluates. An agent learns it is a deterministic compute node but not which capital regime, input fields, or output judgment distinguishes it from siblings like compute_rbc_action_level_private or compute_large_exposures_limit. The verb+resource is inferable from the name, not from the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance given is a data-handling constraint ("Use synthetic or anonymised inputs only") and how the compute parameter behaves. There is no statement of when to choose this tool over any alternative, no prerequisites, and no exclusions — despite a large family of sibling compute_*/private variants.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_card_act_ability_to_payCheck CARD Act Ability to PayB
Read-onlyIdempotent
Inspect

Check CARD Act Ability to Pay: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-228-build-adverse-action-notice. Open at: https://ainumbers.co/chaingraph/art-233-check-card-act-ability-to-pay.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
dti_ratioNo
method_usedNo
has_cosignerNo
table_sourceNo
total_assetsNo
annual_incomeNo
dti_thresholdNo
table_versionNo
monthly_incomeNo
regulatory_basisNo
income_and_assetsNo
requires_cosignerNo
method_a_sufficientNo
method_b_sufficientNo
under_21_restrictionNo
ability_to_pay_resultNo
requested_credit_limitNo
monthly_housing_paymentNo
penalty_fee_safe_harborNo
monthly_debt_obligationsNo
total_monthly_obligationsNo
annual_minimum_payments_estNo
monthly_minimum_payment_estNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world. Beyond that, the description discloses meaningful traits: inputs are processed transiently and not stored/logged/retained, compute:'auto'/'server'/'browser' delegation semantics, gpu:true always delegating, and that an AP2 artifact with execution_hash is exported for provenance. These add real value the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and dominated by chain-infrastructure boilerplate (compute binding, Cloudflare Workers, FV-status JSON hash, offline receipt verification) that crowds out the domain purpose. The single front-loaded sentence carries the purpose; much of the remainder is filler relative to what an agent needs to select the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, the core decision function is opaque ('See the tool's manifest for field names'), so an agent cannot know what inputs the ability-to-pay check consumes. Chaining and compute behavior are covered, but the substantive domain contract is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; baseline 3 applies. The description largely repeats the compute-mode explanation already in the schema and explicitly defers policy_parameters field names to 'the tool's manifest', adding no parameter meaning of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line gives a specific verb+resource (check CARD Act ability to pay) and labels it a compliance_mandate compute node, so an agent knows the domain area. It names its downstream consumer (art-228-build-adverse-action-notice), which hints at scope. However, it never says what an ability-to-pay determination actually evaluates, and the sibling space has many 'check_*' compliance tools that it doesn't help distinguish.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives. The only usage-adjacent guidance is 'Use synthetic or anonymised inputs only' and the compute-mode routing, which concerns how to call it, not when. No prerequisites, no exclusions, no named alternatives among the many sibling checks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_cash_leg_finalityOn-Chain Cash-Leg Finality CheckerC
Read-onlyIdempotent
Inspect

On-Chain Cash-Leg Finality Checker: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 505-tokenized-collateral-eligibility-checker. Open at: https://ainumbers.co/tools/506-onchain-cash-leg-finality-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
mica_statusNo
mandate_typeNo
finality_flagNo
genius_statusNo
compliance_flagsNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnly/idempotent/non-destructive, so the bar is lower, and the description clears it: it explains compute-mode delegation behavior, that inputs are processed transiently and not stored or logged, that synthetic/anonymised inputs only should be used, and that it exports an AP2 artifact with execution_hash for provenance. These are genuine operational facts not present in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the title and then largely infrastructure boilerplate (Cloudflare Workers, kernel registration, FV-status snapshot URL) before any tool-specific content. The material is organised but several sentences describe the platform rather than this tool, which dilutes the signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute/privacy/chaining context is present. However, for a decision-function tool whose substance lives in policy_parameters, the description defers to 'the tool's manifest for field names', leaving the actual checking semantics opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode rules already written in the schema and otherwise adds nothing about the parameters, so the baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the finality check actually evaluates; it restates the title ('On-Chain Cash-Leg Finality Checker') and then spends its length on execution infrastructure. Among siblings named 'finality' (check_linea_l2_finality_window, classify_settlement_finality, classify_ledger_consensus_finality, classify_bold_challenge_finality) nothing here lets an agent tell this one apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is one useful routing signal — 'Consumes upstream artifacts from: 505-tokenized-collateral-eligibility-checker' — which implies a chain position. But there is no statement of when to call this versus the many other finality-classification tools, and no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_client_portingClient Porting CheckC
Read-onlyIdempotent
Inspect

Client Porting Check: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-532-client-porting-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
verdictNo
citationsNo
positionsNo
rationaleNo
client_refNo
collateralNo
evaluated_atNo
window_missedNo
position_countNo
window_minutesNo
elapsed_minutesNo
rejected_inputsNo
backup_member_idNo
collateral_countNo
default_event_atNo
positions_completeNo
collateral_completeNo
porting_window_hoursNo
total_notional_displayNo
total_collateral_displayNo
total_notional_minor_unitsNo
backup_member_consent_statusNo
total_collateral_minor_unitsNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare read-only, idempotent, non-destructive behavior, so the bar is lower, yet the description still adds real context: inputs are processed transiently and not stored/logged/retained, browser mode returns a delegation URL instead of a computed result, and the tool exports an AP2 artifact with execution_hash for chain provenance. Minor boilerplate aside, this is useful disclosure beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core compute/data-handling sentences are reasonably tight and front-loaded, but the entry carries substantial boilerplate: a full documentation URL and a long FV-status hash with a disclaimer sentence that is largely provenance housekeeping. The FV-status sentence and URL dilute the description's signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the compute/data-retention behavior is covered. However, for a tool whose decision function is opaque (policy_parameters is free-form, 'see the tool's manifest'), the description leaves the actual semantics of the check unspecified, which leaves an agent guessing about the tool's core value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute modes, parent_hashes, parent_tool_ids and policy_parameters in detail. The description largely duplicates the compute-mode semantics already in the schema and adds nothing for the chaining or policy_parameters fields beyond pointing at 'the tool's manifest'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Client Porting Check') and labels the tool an 'OpenChainGraph compute node (attestation_mandate)', then spends its words on compute-routing mechanics rather than what the check actually determines. It never states what 'client porting' is being validated against or what outcome the tool produces, so it reads largely as a tautology plus infrastructure metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an input-hygiene rule ('Use synthetic or anonymised inputs only') and explains the auto/browser compute fork, but offers no guidance on when to call this tool versus the many sibling checks (e.g. verify_execution_hash, run_kernel_vm) or what preconditions make it the right choice. The routing guidance is effectively parameter documentation, not tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_conforming_loan_limitConforming Loan Limit CheckC
Read-onlyIdempotent
Inspect

Conforming Loan Limit Check: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-222-agency-eligibility-matrix. Open at: https://ainumbers.co/chaingraph/art-223-conforming-loan-limit.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
yearNo
jumboNo
unitsNo
pii_noteNo
conformingNo
limit_tierNo
state_codeNo
loan_amountNo
loan_programNo
table_sourceNo
area_baselineNo
table_versionNo
baseline_limitNo
classificationNo
applicable_limitNo
regulatory_basisNo
super_conformingNo
high_cost_ceilingNo
is_ak_hi_territoryNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds real behavior: inputs are processed transiently and not stored/logged/retained, compute:'browser' returns a delegation URL, gpu:true always delegates, and an AP2 artifact with execution_hash is exported for chain provenance. The FV-status snapshot note is useful but verbose. Together this is meaningful disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense block that opens with boilerplate instead of the tool's function, then mixes platform metadata, a canonical URL, and an FV-status receipt hash. The URL and verification-receipt sentence consume space without helping selection or invocation. Front-loading is poor and several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and chaining parameters are covered by the schema. However, for a 'compliance_mandate' decision node the description omits the actual domain meaning and defers input field names to an external manifest, leaving the agent without enough to know what this check decides or which policy_parameters to supply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation duplicates the schema's own wording and adds nothing for the chaining or policy_parameters fields, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title say 'Conforming Loan Limit Check', but the description never states what is actually checked, what inputs matter, or what the result means. It restates the tool as an 'OpenChainGraph compute node (compliance_mandate)' and 'Deterministic OpenChainGraph compute node', which is platform taxonomy rather than purpose. An agent learns the tool exists and produces an AP2 artifact, but not what domain decision it makes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance or comparison to siblings such as check_agency_eligibility_matrix or other limit checks. The only directive is a data constraint ('Use synthetic or anonymised inputs only'), which is a safety note rather than routing guidance. Compute-mode selection is described but that is configuration, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_cra_annex1_completenessCRA Annex I Completeness CheckerC
Read-onlyIdempotent
Inspect

CRA Annex I Completeness Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-138-spdx-sbom-validator. Output feeds: art-140-cra-vuln-reporting-readiness. Open at: https://ainumbers.co/chaingraph/art-139-cra-annex1-completeness-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
annex1_completeNo
conformity_routeNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description earns credit for adding genuinely new behavior: deterministic server- vs browser-side execution, transient input processing with no storage, logging or retention, and export of an AP2 artifact carrying execution_hash for provenance. It also notes the FV-status receipt verifies offline as a snapshot. The only gap is no detail on failure modes of the completeness check itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense block that front-loads a repeated title rather than the purpose, and 'OpenChainGraph compute node' is stated twice. The provenance/URL/FV-status sentences are useful but placed ahead of any statement of what the tool checks, so structure is serviceable but not well ordered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and execution/provenance/chaining are well covered. However, for a regulatory completeness checker the description omits the substantive scope of the check and how to supply parameters for the decision function, leaving a real gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, and the description largely repeats the compute enum semantics. It explicitly defers policy_parameters field names to 'the tool's manifest', adding no meaning beyond the schema, which is the expected baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the check actually does — no verb+resource explanation of what CRA Annex I completeness means or what the decision function evaluates. The first line just restates the title, and the rest is OpenChainGraph infrastructure boilerplate (compute modes, AP2 export, artifact IDs). An agent must infer the purpose entirely from the name and cannot distinguish it from siblings like assess_cra_vuln_reporting_readiness or check_official_statement_completeness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no comparison to alternative checkers, and no stated prerequisites beyond 'use synthetic or anonymised inputs only'. The upstream/downstream artifact IDs (art-138, art-140) hint at a pipeline position but not at when an agent should choose this tool over another compliance check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_credit_concentration_topn_sectorCredit Concentration Top-N / Sector CheckerC
Read-onlyIdempotent
Inspect

Credit Concentration Top-N / Sector Checker: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-445-credit-concentration-topn-sector.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
top_nNo
sector_hhiNo
worst_sectorNo
sector_totalsNo
portfolio_totalNo
sector_breachesNo
single_name_hhiNo
top_n_exposuresNo
sector_limit_pctNo
worst_single_nameNo
single_name_breachesNo
single_name_limit_pctNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, but the description adds real behavior beyond them: inputs are processed transiently and not stored, logged, or retained; compute:'browser' returns a delegation URL instead of a result; gpu:true nodes always delegate; and it exports an AP2 artifact with execution_hash. That is substantive operational context an agent needs. It stops short of describing latency, limits, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is padded with duplicated framing ('OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node.') and closes with a full FV-status hash URL plus an artifact URL, neither of which helps invocation. The front-loaded sentence is a title restatement rather than the most useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema and a rich four-parameter schema, the description omits the domain semantics of the decision function and pushes policy_parameters field names to a manifest the agent must fetch separately. For a 4-param analytics tool with nested objects, the description should at least sketch the inputs and outputs of the concentration calculation; instead it documents plumbing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter semantics are already fully documented structurally and the baseline is 3. The description's compute-mode sentence largely mirrors the schema's own compute description rather than extending it, and it explicitly defers policy_parameters field names to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the concentration check actually computes — no verb like 'compute top-N exposures and sector concentration' appears. It opens with a restatement of the title ('Credit Concentration Top-N / Sector Checker: OpenChainGraph compute node (analytics_mandate)') and then spends the rest on runtime infrastructure. An agent cannot distinguish this from siblings like compute_large_exposures_limit or aggregate_ownership_50pct based on the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions that select this tool over alternatives, and no prerequisites. The only conditional language concerns compute mode ('auto' vs 'browser'), which is a parameter choice, not usage guidance. The 'use synthetic or anonymised inputs only' line is an input constraint, not a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_cscf_control_applicabilityCSCF Control Applicability & CoverageC
Read-onlyIdempotent
Inspect

CSCF Control Applicability & Coverage: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-486-cscf-control-applicability.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gap_listNo
cscf_versionNo
evidence_indexNo
overall_statusNo
architecture_typeNo
not_applicable_setNo
component_inventoryNo
advisory_coverage_pctNo
mandatory_coverage_pctNo
applicable_advisory_countNo
applicable_mandatory_countNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive, non-open-world), but the description adds genuinely new behavioral facts: inputs are processed transiently and not stored/logged/retained, synthetic/anonymised inputs are required, and an AP2 artifact with execution_hash is exported for chain provenance. The compute-mode delegation semantics (server vs browser, gpu:true always delegating) are also disclosed. Only rate limits and failure modes are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by boilerplate ("Deterministic OpenChainGraph compute node" appears twice) and ends with a long URL and a 64-character FV-status hash that consume prime real estate. The actual purpose is never front-loaded, and several sentences repeat what the schema states verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value coverage is not required, but for a compliance decision node the description fails to say what policy_parameters must contain (deferring to an external manifest) or what the applicability/coverage outcome signifies. Given nested-object inputs and a regulated domain, this is insufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode paragraph largely duplicates the schema's own enum description and adds no new parameter meaning; policy_parameters still defers to "the tool's manifest" for field names in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ("CSCF Control Applicability & Coverage") and labels it a "compliance_mandate" compute node, but never explains what CSCF is, what "applicability" or "coverage" means, or what the node actually computes. An agent cannot distinguish this from dozens of other compliance-check siblings on the basis of the text. It is effectively a title restatement plus infrastructure boilerplate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance concerns the plumbing (compute:"auto" vs "browser"), not when to invoke this tool versus alternatives. There is no statement of prerequisites, triggering conditions, or which sibling tools it complements or supersedes. An agent has no routing signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_debt_validation_noticeDebt Validation Notice Completeness CheckerC
Read-onlyIdempotent
Inspect

Debt Validation Notice Completeness Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-402-validate-regf-call-frequency. Open at: https://ainumbers.co/chaingraph/art-403-check-debt-validation-notice.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
compliantNo
gap_countNo
table_sourceNo
asserted_noteNo
table_versionNo
disambiguationNo
element_statusNo
response_periodNo
elements_checkedNo
regulatory_basisNo
completeness_gradeNo
itemization_date_validNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint/destructiveHint already declared, the annotation bar is met, and the description adds genuinely useful behaviors: inputs are processed transiently and not stored/logged/retained, the node is deterministic, it exports an AP2 artifact with execution_hash, and browser delegation occurs for gpu:true nodes. These operational traits go beyond what annotations convey. It stops short of five because it never explains the decision logic or failure conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure prose, a raw artifact URL, and an FV-status hash string, none of which help an agent decide whether or how to call the tool. Purpose is not front-loaded as an action statement, and much of the content is boilerplate that applies to every OpenChainGraph node.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description does convey chaining and provenance mechanics. However, for a decision-function node whose policy_parameters are free-form and undefined in the schema, the description never explains what fields the decision requires, leaving an important gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, making 3 the baseline. The description reinforces the compute-mode semantics (auto/server/browser, gpu delegation) but adds nothing about the opaque policy_parameters object beyond deferring to 'the tool's manifest for field names'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with the title 'Debt Validation Notice Completeness Checker' and labels itself a 'compliance_mandate' compute node, which signals the domain, but it never states in plain terms what the check evaluates or what inputs it inspects. Beyond the restated title, the remaining text is execution-infrastructure boilerplate rather than purpose explanation, so the agent must infer the function from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling checkers (e.g. check_official_statement_completeness, validate_adverse_action_notice). The only routing hint is the upstream dependency 'art-402-validate-regf-call-frequency', which describes pipeline position, not when an agent should select this tool. No exclusions or alternatives are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_digital_trade_rulesDigital Trade Rules Compliance CheckerA
Read-onlyIdempotent
Inspect

Digital Trade Rules Compliance Checker: OpenChainGraph compute node (scheme_rule). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-52-digital-trade-fit-diagnostic. Output feeds: art-08-en16931-einvoice-batch-validator, art-55-trade-document-provenance-verifier. Open at: https://ainumbers.co/chaingraph/art-54-digital-trade-rules-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
verdictNo
amount_checkNo
expiry_checkNo
discrepanciesNo
presentation_summaryNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, but the description adds meaningful behavior: deterministic computation, server vs browser execution paths, transient inputs that are 'not stored, logged, or retained', and an exported artifact carrying execution_hash. It stops short of stating latency, rate limits, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the tool's name, but then delivers a dense block of infrastructure boilerplate, including a long FV-status URL with a 64-char hash and the parenthetical 'a snapshot, not a subscription', which is irrelevant to tool selection. Several sentences duplicate schema content rather than earning their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, and the description covers compute paths, privacy, provenance chaining, and pipeline position adequately. The remaining gap is the actual decision function — what trade rules are checked and what belongs in the opaque policy_parameters object are never clarified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema. The description largely restates the compute-mode semantics already present in the schema and adds little about parent_hashes/parent_tool_ids beyond noting the export carries an execution_hash. Baseline 3 is appropriate; it does not compensate for the free-form policy_parameters (deferred to 'the tool's manifest').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Digital Trade Rules Compliance Checker') and names the artifact it produces (AP2 artifact with execution_hash), but is dominated by generic OpenChainGraph compute-node boilerplate rather than the domain of the check itself. It does not differentiate from near-identical siblings like run_digital_trade_fit or run_trade_document_provenance_verifier-style tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides compute-mode guidance ('auto' default is server-side, 'browser' forces client-side and returns a delegation URL) and a data-handling instruction ('use synthetic or anonymised inputs only'), plus pipeline position via the upstream/downstream artifact IDs. However, it gives no explicit when-to-use-vs-alternatives guidance or exclusions for selecting this tool over its many similar siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_dpa_gdpr_art28DPA Article 28 Completeness CheckerC
Read-onlyIdempotent
Inspect

DPA Article 28 Completeness Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-409-dpa-art28-completeness-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context: compute:'auto' resolves server-side only for gpu:false nodes with a registered kernel, compute:'browser' returns a delegation URL, gpu:true nodes always delegate, inputs are processed transiently and not stored/logged/retained, and an AP2 artifact with execution_hash is exported. That is meaningful value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title is front-loaded, but what follows is a dense wall of infrastructure boilerplate (kernel registration, Workers execution, FV-status snapshot URL, receipt semantics) that crowds out the sentence an agent actually needs about what the check does. The single tractable instruction is buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining the result, yet it says nothing about what the completeness verdict looks like or which Article 28 elements it covers. It is complete on the compute/provenance plumbing but inadequate on the actual compliance-check semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; the description's compute-mode explanation is largely redundant with the schema text. It adds nothing about policy_parameters beyond deferring to 'the tool's manifest', so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title verbatim ('DPA Article 28 Completeness Checker') and then labels it 'OpenChainGraph compute node (compliance_mandate)'. It never says what a DPA Article 28 completeness check actually examines — which processor-contract clauses, sub-processor terms or records are validated — so the purpose is effectively a tautology of the name. It also does nothing to distinguish itself from near-identical siblings like check_cra_annex1_completeness or check_emir_uti_completeness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, no prerequisites, and no reference to alternatives. The only constraint offered ('Use synthetic or anonymised inputs only') is a data-handling rule, not selection guidance for an agent choosing among the many *_completeness / assess_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_emir_uti_completenessEMIR UTI Completeness CheckerC
Read-onlyIdempotent
Inspect

EMIR UTI Completeness Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-153-emir-trade-report-field-validator. Output feeds: art-155-emir-upi-validator. Open at: https://ainumbers.co/chaingraph/art-154-emir-uti-completeness-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the description clears a lower bar and still adds real context: inputs are processed transiently and not stored, logged, or retained; synthetic or anonymised inputs should be used; the tool exports an AP2 artifact carrying execution_hash; and browser delegation behavior is spelled out. Some of the compute-mode text duplicates the schema's own 'compute' description, but the data-handling and artifact-output disclosures are unique to the prose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text opens with a duplicated name/title and platform metadata rather than the tool's job, and closes with a long FV-status hash sentence that is effectively noise for a selection decision. Sentences are individual and grammatical but not front-loaded around what the agent needs; boilerplate crowds out the one or two lines that carry decision value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a chained compliance compute node with an opaque policy_parameters object ('See the tool's manifest for field names'), the description should say what inputs the check requires or what the policy fields are; it does neither. There is no output schema, and the description only partially compensates with the AP2 artifact/execution_hash mention and chain links. The agent can select the tool but cannot confidently construct a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description restates the compute-mode semantics already present in the schema and only loosely connects parent_hashes/parent_tool_ids to the chain ('Consumes upstream artifacts from art-153'). It adds no syntax or sourcing detail for those hash parameters, and policy_parameters remains opaque in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the EMIR UTI completeness check actually evaluates — no verb+resource beyond restating the name/title. Its content is platform boilerplate (compute modes, artifact export, URLs) plus a pipeline position (consumes from art-153, feeds art-155), which hints at context but doesn't distinguish the function from siblings like validate_emir_upi or validate_emir_trade_report. An agent learns the tool is an 'OpenChainGraph compute node', not what completeness means or against which spec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use, when-not-to-use, or sibling routing is given; there is no comparison to validate_emir_upi or the other EMIR validators. The only conditional guidance ('compute:auto' vs 'browser' vs gpu:true) concerns execution mode, not tool selection. Upstream/downstream artifact mentions imply a chain position but stop short of telling the agent when this tool is the right call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_etr_control_evidenceETR Singularity & Exclusive-Control Evidence CheckerC
Read-onlyIdempotent
Inspect

ETR Singularity & Exclusive-Control Evidence Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-55-trade-document-provenance-verifier. Open at: https://ainumbers.co/chaingraph/art-352-etr-control-evidence-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
chain_summaryNo
document_digestNo
overall_verdictNo
malformed_eventsNo
element_checklistNo
platform_identityNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, yet the description adds substantive context beyond them: server-vs-browser compute selection, gpu:true always delegating, transient processing with no storage/logging, and an exported AP2 artifact carrying execution_hash for provenance. The FV-status snapshot receipt (verifiable offline) is also useful behavioral detail. Data-handling and delegation semantics are genuinely disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute/privacy/provenance boilerplate is front-loaded and each sentence is meaningful within the platform's framework, but the text is long relative to the actual information conveyed about this specific tool. The genuinely distinguishing content (what it checks) is absent while infrastructure detail dominates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, but the core decision function is left opaque and policy_parameters is punted to an external manifest. For a compliance/compute node with a nested input object and a provenance export, an agent still lacks enough to know what evidence to supply and what verdict to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; the description's compute-mode wording merely restates the schema enum. It adds no field-level meaning for policy_parameters (deferring to 'the tool's manifest' in the schema rather than explaining it), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title combine a verb ('check') with a resource ('ETR control evidence'), so the agent knows the general domain, but the body never explains what the check actually evaluates (which control, which singularity criterion, what a pass/fail means). Instead it opens with compute-node plumbing. It differentiates itself from siblings only via the art-352 URL and the named downstream consumer, not by describing its own decision function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is 'Use synthetic or anonymised inputs only' and 'Output feeds: art-55-trade-document-provenance-verifier', which hints at downstream context but not when to pick this over the many ETR-adjacent siblings (build_etr_possession_chain, compute_globe_jurisdictional_etr). No when-to-use, no exclusions, no alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_eudi_readinessEUDI Wallet Credential-Acceptance Readiness CheckerC
Read-onlyIdempotent
Inspect

EUDI Wallet Credential-Acceptance Readiness Checker: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2026-11 (EUDI Wallet member-state rollout November 2026; FI SCA acceptance December 2027; AMLR July 2027). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-04-agent-identity-attestation-checker, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-13-eudi-wallet-credential-readiness-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description goes beyond them with genuinely useful traits: determinism, transient processing with no storage/logging/retention, browser delegation behavior for gpu:true, and an AP2 artifact carrying execution_hash for chain provenance. That is meaningful behavioral context an agent could not infer from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense block mixing title, regulatory dates, compute internals, retention policy, cross-tool routing, an external URL, and a long FV-status hash. The actual purpose is buried, and much of the text is boilerplate that does not help selection or invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain what the check returns, and it only partially does (AP2 artifact with execution_hash, optionally a browser delegation URL). Execution semantics and retention are covered well, but the readiness decision output and the policy_parameters fields are left to an external manifest/URL, leaving a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates compute semantics (auto/server/browser, gpu delegation) that the schema already documents, and it defers policy_parameters to 'the tool's manifest for field names' rather than explaining them. It adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool is named and its subject (EUDI Wallet credential-acceptance readiness) is identifiable, but the description never states what is actually evaluated or what a 'readiness' verdict consists of. Most of the text is execution plumbing (compute binding, provenance, FV-status URL) rather than purpose. It does not distinguish itself from the many sibling readiness tools (e.g. assess_psd3_readiness, run_eudr_readiness_fit).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on compute mode selection (auto/server/browser, gpu:true always delegates) and a data-handling constraint ('use synthetic or anonymised inputs only'), plus downstream consumers. However, there is no guidance on when to use this tool versus sibling readiness checkers, no prerequisites, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_fatca_crs_submission_conformanceFATCA/CRS Submission Conformance CheckC
Read-onlyIdempotent
Inspect

FATCA/CRS Submission Conformance Check: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-490-fatca-crs-submission-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
findingsNo
fail_countNo
record_countNo
finding_countNo
submission_idNo
schema_versionNo
certification_periodNo
suppressed_rule_codesNo
suppressed_finding_countNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, the description discloses substantive behavioral traits: transient input processing with no storage/logging, server-vs-browser compute delegation semantics, export of an AP2 artifact carrying execution_hash for chain provenance, and that the FV-status receipt is a snapshot verifying offline. These are genuine operational facts that the annotations do not carry. It stops short of describing the conformance check's actual decision behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The block is dominated by reusable infrastructure boilerplate (compute binding, FV-status URL, AP2 provenance) with the tool-specific purpose never stated, and the only actionable sentence ('Use synthetic or anonymised inputs only') is buried mid-paragraph. The trailing FV-status hash paragraph is long and not front-loaded around what the agent needs to decide to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but the description still omits what a conformance check requires as input (policy_parameters fields are externalised to a manifest) and what failures/pass criteria mean. For a compliance-conformance tool with nested object inputs, the description is mostly cross-cutting platform metadata and does not make the tool callable with confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, and the description largely repeats the compute-mode semantics. Critically, policy_parameters — the actual inputs to the decision function — is deferred to 'the tool's manifest for field names', adding no semantic value. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leans on the name/title for meaning: it identifies itself as a 'compute node (compliance_mandate)' and 'deterministic OpenChainGraph compute node' but never says what the FATCA/CRS submission conformance check actually evaluates or what rules it applies. It does not distinguish this tool from the many sibling '*_conformance' and '*_check' tools. The purpose is effectively restated rather than explained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is operational guidance (compute modes, 'Use synthetic or anonymised inputs only') but no guidance on when to select this tool versus alternatives such as check_ssi_conformance, check_gpai_code_conformance, or the FATCA/CRS remediation sibling track_fatca_crs_ro_remediation_closure. No context, prerequisites, or exclusion criteria are given for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_fido_pqc_conformanceFIDO2 / WebAuthn PQC Conformance CheckerB
Read-onlyIdempotent
Inspect

FIDO2 / WebAuthn PQC Conformance Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-85-pqc-timeline-fit-diagnostic. Output feeds: cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-88-fido-pqc-conformance-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
noteNo
conformantNo
target_pqcNo
ctap_versionNo
hybrid_statusNo
ctap_pqc_readyNo
target_cose_idNo
cose_pqc_registryNo
reference_versionNo
attestation_formatNo
supported_pqc_cose_idsNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description is consistent with them rather than contradicting. It then adds genuinely useful behavior beyond the annotations: compute:'auto' vs 'server' vs 'browser' delegation semantics, transient non-stored/non-logged processing, and emission of an AP2 artifact with execution_hash for chain provenance. Auth requirements and kernel availability details remain undisclosed, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is a single dense run-on block that begins by restating the title verbatim, then mixes execution-plumbing and provenance metadata with an FV-status hash. Individual sentences (transient processing, compute modes) earn their place, but the front-loading is weak and the provenance tail could be collapsed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. But for a tool whose main input is an opaque policy_parameters object whose field names live in an off-description manifest, the description never tells an agent what to put in it, and the domain meaning of a pass/fail FIDO2/WebAuthn PQC conformance result is left unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode explanation largely restates the schema enum, and it adds nothing about policy_parameters beyond pointing at a manifest the agent cannot see. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line give a specific verb+resource (check FIDO2/WebAuthn PQC conformance), which an agent can distinguish from neighbors like run_pqc_timeline_fit or check_iso20022_pqc_readiness. However, the body never explains what 'conformance' actually evaluates, and it never explicitly contrasts itself with the closely related upstream tool art-85-pqc-timeline-fit-diagnostic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to siblings, no prerequisites, and no exclusions. The only usage-adjacent statement is 'Use synthetic or anonymised inputs only', which is an input restriction, not a routing rule. An agent cannot tell from this why it would pick this node over run_pqc_timeline_fit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_g20_corridor_cost_gapG20/FSB Corridor Cost-Gap CalculatorC
Read-onlyIdempotent
Inspect

G20/FSB Corridor Cost-Gap Calculator: OpenChainGraph compute node (risk_parameter). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-549-g20-corridor-cost-gap.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
as_ofNo
gap_bpsNo
rationaleNo
target_yearNo
meets_targetNo
target_basisNo
target_scopeNo
corridor_pairNo
gap_pct_displayNo
rejected_inputsNo
rpw_methodologyNo
observed_cost_bpsNo
send_amount_basisNo
observed_cost_displayNo
target_global_avg_bpsNo
target_any_corridor_bpsNo
target_global_avg_displayNo
target_any_corridor_displayNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint:false, openWorldHint:false), but the description adds real non-structured context: inputs are processed transiently and not stored/logged, synthetic or anonymised inputs are expected, and a browser delegation URL is returned when compute:'browser' or gpu:true. That is substantive behavioral disclosure an agent could not infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is poor: the sentence that would tell an agent what this tool computes does not exist, while 'Deterministic OpenChainGraph compute node' is stated twice back-to-back. The trailing URL and an inline 64-character FV-status hash consume substantial space for provenance metadata rather than routing-relevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the compute-mode behavior is covered. However, for a domain computation tool with a nested policy_parameters object, the description never states the decision function, its required inputs, or its regulatory basis, and explicitly punts field names to an external manifest. The infrastructure boilerplate is complete; the domain substance is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute enum's semantics are fully documented in the schema itself, so the description adds little there. For the one parameter that actually carries domain meaning, policy_parameters, the description defers to 'the tool's manifest for field names' instead of naming any field, leaving the decision inputs opaque. Baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the name/title verbatim ('G20/FSB Corridor Cost-Gap Calculator: OpenChainGraph compute node (risk_parameter)') and then never explains what a corridor cost-gap is, what it is measured against (G20/FSB remittance targets?), or what the tool returns. An agent gets the resource name but no verb-level statement of the computation performed, and no differentiation from siblings like compare_corridor_cost, model_stablecoin_corridor_economics, or compute_cross_border_fees.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of the obvious alternatives in a sibling set full of corridor/cross-border cost tools. The only routing information given is about compute mode ('auto' vs 'browser'), which is an execution detail, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_genius_reserve_disclosureGENIUS Act Monthly Reserve Disclosure CheckerA
Read-onlyIdempotent
Inspect

GENIUS Act Monthly Reserve Disclosure Checker: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2027-01-18 (GENIUS Act effective ≤ January 2027; monthly reserve composition reports required for licensed issuers; >$50B issuers subject to annual PCAOB audit. Re-verify against final-rule text on/after 2026-07-18.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-275-genius-reserve-disclosure-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
mom_diffNo
gate_policyNo
report_monthNo
asset_resultsNo
ceo_certifiedNo
cfo_certifiedNo
examiner_nameNo
custody_disclosedNo
custody_locationsNo
coverage_ratio_pctNo
failing_dimensionsNo
total_reserves_usdNo
applicable_deadlineNo
pdf_extraction_noteNo
onchain_supply_checkNo
regulatory_frameworkNo
prohibited_assets_usdNo
reserve_shortfall_usdNo
total_liabilities_usdNo
conditional_assets_usdNo
dual_control_satisfiedNo
registered_examiner_namedNo
monthly_disclosure_determinationNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive/openWorld=false), the description adds genuinely useful behaviour: deterministic execution, transient processing with no storage/logging/retention, server-vs-browser delegation semantics, and an exported AP2 artifact carrying execution_hash for chain provenance. The main gap is that 'check' logic itself is never described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the purpose and deadline, which is good, but the body is a dense run-on mixing compliance facts, compute-binding mechanics, and a lengthy FV-status hash explanation. Some material (the specific artifact URL and offline-receipt caveat) could be trimmed or moved out of the operational description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full annotation coverage, the description need not explain return values, and it does supply the regulatory timing, input constraints, determinism, and downstream consumer (ptg-01-ap2-prompt-template-generator). The one notable omission is any disambiguation from the very similar sibling conformance checker.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with 4 documented parameters, so the schema already carries the semantics. The description restates the compute:'auto'/'browser' delegation behaviour but adds no field-level meaning for policy_parameters, parent_hashes, or parent_tool_ids beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (GENIUS Act monthly reserve composition disclosures) and a check action, plus the regulatory context (licensed issuers, >$50B annual PCAOB audit). It never differentiates from the near-identical sibling check_genius_reserve_disclosure_conformance, so an agent cannot tell the two apart from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real usage context in the form of a regulatory deadline (2027-01-18), a re-verification window (on/after 2026-07-18), and an input-hygiene rule (synthetic/anonymised inputs only). However, it never says when to pick this tool over the sibling check_genius_reserve_disclosure_conformance or precheck_reserve_attestation, leaving alternative selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_genius_reserve_disclosure_conformanceGENIUS Act Reserve-Disclosure Conformance MonitorC
Read-onlyIdempotent
Inspect

GENIUS Act Reserve-Disclosure Conformance Monitor: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2027-01-18 (GENIUS Act effective date is the earlier of 18 Jan 2027 or 120 days after final implementing regulations publish; the statutory 18 Jul 2026 rulemaking deadline was missed and no final rule exists as of 2026-08-07 (research/GENIUS-FINALRULE-CHECK-2026-08-07.md). Re-verify against final-rule text once one publishes.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-582-genius-reserve-disclosure-conformance-monitor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scope_noteNo
examiner_nameNo
report_periodNo
period_end_dateNo
attestation_dateNo
coverage_ratio_pctNo
total_reserves_usdNo
attestation_presentNo
examiner_registeredNo
onchain_supply_checkNo
requirement_verdictsNo
days_after_period_endNo
overall_determinationNo
reserve_shortfall_usdNo
total_liabilities_usdNo
statutory_attestation_window_daysNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/destructive/openWorld, yet the description adds real behavioral detail beyond them: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, compute:'browser' returns a delegation URL, and an AP2 artifact with execution_hash is exported for provenance. That is meaningful extra context an agent would not get from the annotations. It stops short of describing failure modes or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense with parentheticals, statutory dates, an internal research file path, a full sha256 receipt URL, and FV-status prose that do not help an agent decide or invoke. The actual tool purpose is buried after the compute-infrastructure preamble rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a check tool whose real inputs live in an opaque policy_parameters object, the description defers field names to an external manifest, leaving the agent unable to construct a valid call. Although an output schema exists (so return values need not be explained), the missing input contract and the lack of sibling differentiation make this incomplete for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; the description largely restates the compute-mode semantics. Critically, the one parameter that carries the real payload (policy_parameters) is punted to an external manifest the agent cannot fetch, so no new field-level meaning is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify a specific regulatory check (GENIUS Act reserve-disclosure conformance), but the description body never elaborates what is actually checked or what a passing/failing decision means; it spends its words on compute-node mechanics instead. It also fails to distinguish itself from near-identical siblings like check_genius_reserve_disclosure and check_mica_reserve_disclosure. Purpose is inferable from the title but not reinforced by the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only conditional guidance is regulatory ('re-verify against final-rule text once one publishes'), which is about the mandate's status, not about when to invoke this tool versus the sibling reserve-disclosure checks. There is no when-to-use, when-not-to-use, or alternative-tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_gpai_code_conformanceGPAI Code of Practice ConformanceB
Read-onlyIdempotent
Inspect

GPAI Code of Practice Conformance: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-174-nist-ai-rmf-function-mapper. Output feeds: art-176-ai-governance-readiness-diagnostic. Open at: https://ainumbers.co/chaingraph/art-175-gpai-code-of-practice-conformance.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
base_gapsNo
base_scoreNo
overall_scoreNo
systemic_gapsNo
systemic_scoreNo
base_conformantNo
is_gpai_providerNo
is_systemic_riskNo
code_of_practice_signedNo
systemic_risk_conformantNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, and the description adds substantial behavior beyond them: server vs browser delegation rules (gpu:true always delegates; compute:'browser' returns a delegation URL), transient input processing with no storage/logging/retention, AP2 artifact export with execution_hash for provenance, and chaining via parent hashes. It does not describe failure modes or the return payload, but the added operational context is meaningful and does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core operational facts are front-loaded, but there is redundancy (compute mode explained once in prose and again in the schema) and heavy boilerplate ('Deterministic OpenChainGraph compute node', the FV-status receipt sentence) that displaces the one thing an agent most needs: what the conformance check actually evaluates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it covers the essentials an agent needs to invoke it: compute binding, privacy handling, provenance chaining, and upstream/downstream artifact links. The notable remaining gap is the semantics of policy_parameters, which is deferred to an external manifest rather than described here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics already present in the schema and adds chain-provenance framing, but for the opaque policy_parameters object it explicitly punts to the manifest, adding no field-level meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a deterministic OpenChainGraph compute node for a 'compliance_mandate' and names its upstream/downstream artifact neighbors, which gives some differentiation. However, the actual check being performed (what 'GPAI Code of Practice conformance' evaluates) is never described, and the decision inputs are deferred to 'the tool's manifest for field names'. The name/title carry most of the purpose weight rather than the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a hard constraint ('Use synthetic or anonymised inputs only') and explains compute-mode selection, but gives no when-to-use guidance against the many adjacent assessment tools (assess_ai_act_conformity, map_nist_ai_rmf_functions, run_ai_governance_fit, etc.). No alternatives or exclusions are named, so an agent cannot route to this tool versus siblings from the description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_icm_quorum_forgery_riskICM Quorum Forgery ClassifierC
Read-onlyIdempotent
Inspect

ICM Quorum Forgery Classifier: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-494-icm-quorum-forgery-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rationaleNo
stake_hhiNo
quorum_pctNo
meets_floorNo
message_classNo
source_l1_labelNo
quorum_pct_validNo
quorum_reachableNo
total_validatorsNo
total_stake_weightNo
colluding_share_pctNo
min_colluding_floorNo
colluding_stake_weightNo
min_colluding_validatorsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds meaningful non-annotation context: inputs are processed transiently and not stored or logged, an AP2 artifact with execution_hash is exported for chain provenance, and browser mode returns a delegation URL rather than a result. That is substantive behavioral disclosure beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the title, but the body is dominated by transport/infrastructure detail (Cloudflare Workers, compute binding, artifact URL, FV-status receipt hash) that is largely irrelevant to selecting or invoking the tool. The trailing URL and snapshot sentence do not earn their length relative to the missing functional description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required, and annotations cover the safety profile. But this is a nested-object tool with opaque policy_parameters, and the description supplies nothing about what the classifier decides or what inputs it expects — the single most important thing an agent needs is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description largely repeats the compute-mode semantics already documented verbatim in the schema, and does not compensate for the real gap: policy_parameters is the actual decision input, yet both schema and description defer its fields to an unstated 'manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('ICM Quorum Forgery Classifier') and then spends its entire length on infrastructure boilerplate (compute node type, compute-mode routing, artifact export, a URL, an FV-status snapshot). It never states what the forgery-risk check actually evaluates, what 'ICM quorum' inputs it consumes, or what a result means. An agent cannot distinguish this from any other analytics_mandate compute node in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It does give real guidance on compute-mode selection (default 'auto', 'browser' forces client-side delegation) and a genuine usage constraint ('Use synthetic or anonymised inputs only'). However, it offers no when-to-use-vs-alternatives routing against any sibling tool, which matters given dozens of near-identically-named check_*/classify_* classifiers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_ifrs17_risk_adjustmentIFRS 17 Risk Adjustment CheckerC
Read-onlyIdempotent
Inspect

IFRS 17 Risk Adjustment Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-178-ifrs17-csm-rollforward-validator. Open at: https://ainumbers.co/chaingraph/art-179-ifrs17-risk-adjustment-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
ra_validNo
disclosedNo
ra_amountNo
techniqueNo
technique_okNo
confidence_disclosedNo
confidence_level_pctNo
onerous_properly_handledNo
loss_component_recognizedNo
onerous_contracts_identifiedNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe read-only/idempotent/non-destructive profile, so the lower bar applies, and the description does add real behavior beyond them: compute:"auto" vs "browser" delegation, gpu:true always delegating, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash for chain provenance. It stops short of describing output shape or failure modes, but this is substantive added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by boilerplate, an https URL and a long FV-status hash, all front-loaded ahead of any functional explanation. The actual purpose of the check is never front-loaded, so the paragraph does not earn its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object compute node with an output schema, the description omits what the decision function evaluates and points to an external manifest for policy_parameters field names, leaving the callable contract underspecified. Privacy, compute modes and provenance are covered, but the tool-specific computation is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both compute, parent_hashes/parent_tool_ids and policy_parameters are already documented in the schema, which sets the baseline at 3. The description echoes the compute-mode semantics already in the schema and adds nothing about policy_parameters beyond deferring to 'the tool's manifest', so no uplift is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the risk-adjustment check actually does; it opens with a name/title restatement followed by OpenChainGraph infrastructure boilerplate. An agent cannot distinguish this from siblings like classify_ifrs17_measurement_model or track_ifrs17_loss_component_rollforward based on the text, since the IFRS 17 computation itself is only alluded to indirectly via the art-178 upstream reference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance or naming of sibling alternatives. The only routing hint is the statement that it consumes upstream artifacts from art-178-ifrs17-csm-rollforward-validator, which implies a pipeline position but does not tell an agent when this tool is the right choice versus other IFRS 17 tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_iolta_three_way_reconciliationIOLTA Three-Way Trust ReconciliationC
Read-onlyIdempotent
Inspect

IOLTA Three-Way Trust Reconciliation: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-566-iolta-three-way-reconciliation.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
decisionNo
findingsNo
three_wayNo
scope_noteNo
clause_noteNo
client_countNo
client_ledgersNo
rejected_inputsNo
statement_periodNo
outstanding_itemsNo
outstanding_summaryNo
negative_balance_findingsNo
period_boundary_consistentNo
period_boundary_mismatchesNo
reconciliation_tolerance_minorNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, and the description adds genuinely new behavioral facts: inputs are processed transiently and not stored, logged or retained; an AP2 artifact with execution_hash is exported; and compute mode determines server vs. browser execution. That is real added context beyond the annotations, though the FV-status snapshot paragraph is more promotional than operational.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front-loaded text is boilerplate about the compute node rather than the tool's purpose, and the closing FV-status receipt paragraph with a raw URL adds bulk without helping invocation. Relevant compute information is buried after generic platform language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but the description omits the core semantic content an agent needs: what inputs feed a three-way IOLTA reconciliation and what the decision function checks. Pointing to 'the tool's manifest' off-host for policy_parameters field names leaves the agent without local guidance for a nested, untyped parameter object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented in the schema. The description restates the compute-mode semantics and adds nothing for the chaining or policy parameters, leaving baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title ('IOLTA Three-Way Trust Reconciliation: OpenChainGraph compute node') and then pivots to platform scaffolding about compute binding and AP2 artifacts. It never says what the three-way reconciliation actually checks (e.g., bank statement vs. client ledger vs. trust ledger) or what a compliance_control node produces. An agent learns the tool exists but not what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no routing to any of the many reconciliation siblings (attest_daily_reconciliation, check_safeguarding_reconciliation, check_nway_balance_closure). The only usage-adjacent sentence is the input-hygiene constraint 'Use synthetic or anonymised inputs only,' which is a restriction, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_irrbb_csrbb_scopeIRRBB CSRBB Scope CheckerB
Read-onlyIdempotent
Inspect

IRRBB CSRBB Scope Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-186-irrbb-standardised-approach-mapper. Output feeds: art-188-irrbb-disclosure-readiness-diagnostic. Open at: https://ainumbers.co/chaingraph/art-187-irrbb-csrbb-scope-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
in_scopeNo
in_scope_amountNo
csrbb_conformantNo
csrbb_included_in_icaapNo
csrbb_methodology_definedNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, and the description adds substantive context beyond them: inputs are transient, not stored/logged/retained, an AP2 artifact with execution_hash is exported for provenance, gpu:true always delegates to browser, and the FV-status receipt is an offline-verifiable snapshot. That is genuinely useful operational detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front-loaded content is platform boilerplate about compute binding rather than the tool's purpose, and the FV-status paragraph is a long tail of provenance minutiae. Sentences are individually tight but the overall allocation doesn't prioritize what an agent needs first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation isn't required, and annotations cover safety. However, for a compliance decision node whose policy_parameters are undocumented, the description never states what the scope determination is based on, leaving a gap an agent cannot fill from structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across 4 params, so the baseline is 3. The description reinforces the compute-mode and parent-hash chaining semantics (chain.parent_hashes), but adds little beyond the schema text, and policy_parameters contents remain opaque ('See the tool's manifest').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name states a specific resource (IRRBB CSRBB scope) but the description never explains what the check actually decides — what makes CSRBB in or out of scope, or what the decision function evaluates. It does position the node in a chain (consumes art-186 IRRBB mapper, feeds art-188 disclosure-readiness), which gives some sibling differentiation, but the core purpose is left to the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is real operational guidance: compute mode semantics (auto/server/browser), the 'synthetic or anonymised inputs only' constraint, and the chain role via named upstream/downstream artifacts. But there is no when-to-use vs. siblings such as map_irrbb_standardised_approach or evaluate_irrbb_sot_eve, and no stated preconditions for running the scope check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_iso20022_pqc_readinessSWIFT / ISO 20022 PQC Readiness CheckerB
Read-onlyIdempotent
Inspect

SWIFT / ISO 20022 PQC Readiness Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-85-pqc-timeline-fit-diagnostic, 500-hndl-quantum-risk-scorer. Output feeds: cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-87-iso20022-pqc-readiness-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
size_breachNo
bis_leap_refNo
bloat_factorNo
new_sig_bytesNo
algorithm_refsNo
readiness_scoreNo
current_sig_bytesNo
hndl_priority_refNo
reference_versionNo
bis_leap_bloat_factorNo
affected_message_typesNo
new_message_size_bytesNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real operational context: server-side vs browser compute modes, gpu:true always delegating, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash. It also clarifies that the FV-status receipt verifies offline as a snapshot rather than a subscription — useful behavioral detail beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening repeats the title, then the text is dense with compute-node/platform boilerplate before any tool-specific content. It is not padded frivolously — most sentences carry operational facts — but the ordering buries the actual purpose and the passage is longer than the value it delivers.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and annotations cover safety; provenance, chaining, and compute binding are documented. However, for a compliance-check tool the description never states what dimensions of ISO 20022 PQC readiness are assessed or what the mandate requires, leaving the substantive semantics incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely restates the compute-mode semantics already present in the schema and defers policy_parameters field names to 'the tool's manifest', adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line state a verb+resource ('PQC Readiness Checker' for SWIFT/ISO 20022), but the body never explains what readiness criteria are actually evaluated — it immediately pivots to OpenChainGraph compute-node boilerplate. The chaining line (consumes art-85/500-hndl, feeds cry-04) adds some situational identity but does not clarify the tool's own function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no named alternative among the many sibling readiness/fit tools (run_pqc_timeline_fit, check_fido_pqc_conformance). The upstream/downstream artifact list implies it should be run after the PQC timeline diagnostic, but that is inference, not instruction. The only directive is an input constraint ('use synthetic or anonymised inputs only').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_jwks_pinned_directoryJWKS Pinned-Directory CheckB
Read-onlyIdempotent
Inspect

JWKS Pinned-Directory Check: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-129-webbotauth-signature-verifier. Output feeds: art-130-signature-directory-validator. Open at: https://ainumbers.co/chaingraph/art-609-jwks-pinned-directory-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
key_countNo
digest_matchNo
pinned_digestNo
computed_digestNosha256(canonicalize(directory_jwks)), lowercase hex.
pinned_digest_well_formedNoTrue only if pinned_digest is present and matches 64 lowercase-or-mixed-case hex characters.

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint and closed-world behavior, so the bar is lower, and the description adds real value: inputs are processed transiently and not stored or logged, a browser delegation URL is returned when compute is forced client-side, and an AP2 artifact with execution_hash is exported. These are traits the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the name before the compute details, but the opening repeats the title verbatim ('JWKS Pinned-Directory Check: ... compute node') and the trailing FV-status/URL sentence is dense with artifact plumbing. Most sentences earn their place, yet there is noticeable boilerplate filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers compute behavior, data-handling guarantees, provenance export, and chain placement. The one substantive gap is that it never states what the compliance check evaluates, which matters for a control tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode sentence largely restates the schema's own compute description and adds no field-level syntax or constraints, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title give a specific verb+resource ('check' a 'JWKS pinned directory'), but the body never explains what the check actually validates — it is dominated by compute-binding boilerplate. The chaining context (consumes art-129-webbotauth-signature-verifier, feeds art-130-signature-directory-validator) does help position it in a pipeline, so an agent can infer scope, but the core semantics remain unstated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit 'use this when / not that' guidance, and no named alternatives among the many verify_*/check_* siblings. Usage is only implied through the upstream/downstream artifact chain and the compute-mode defaults ('auto' vs explicit 'server'/'browser'), which is context rather than routing advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_lei_relationship_consistencyLEI Relationship Consistency CheckerC
Read-onlyIdempotent
Inspect

LEI Relationship Consistency Checker: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-600-lei-relationship-consistency.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
consistentNo
cycle_pathNo
scope_noteNo
violationsNo
subject_leiNo
record_countNo
violation_countNo
records_assessedNo
invalid_node_leisNo
invariant_resultsNo
subject_lei_validNo
exception_table_sourceNo
exception_table_versionNo
duplicate_active_triplesNo
deprecated_exception_codesNo
unrecognized_exception_codesNo
recognized_exception_codes_currentNo
recognized_exception_codes_deprecatedNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context: transient processing with no storage or logging, a synthetic/anonymised-input requirement, determinism, and an AP2 artifact with execution_hash for provenance chaining. These are non-obvious operating characteristics not available in the annotations. It stops short of describing outputs or failure behavior, but this is meaningful added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by boilerplate that repeats itself ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') and front-loads infrastructure detail before any statement of purpose. The trailing fv-status URL hash adds bulk with little selection value. Structure is not front-loaded toward the task.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required. However, for a scoring/checking tool the description omits the single most important thing: what consistency rule is evaluated and what the decision function keys on. With policy_parameters described only as 'see the tool's manifest', an agent cannot predict behavior from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (compute, parent_hashes, parent_tool_ids, policy_parameters) is fully documented in the schema. The description's compute-mode prose duplicates the schema's own enum description and adds no field-level meaning beyond it, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description body never states what a 'LEI relationship consistency' check actually does; it opens with 'OpenChainGraph compute node (compliance_control)' and a second redundant 'Deterministic OpenChainGraph compute node' sentence. The only purpose content is a restatement of the name/title, and it does not distinguish this tool from siblings like lei_kyb_check or lint_lei_payment_binding. This is effectively tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this check, what inputs trigger it, or which sibling tool is the alternative. The only 'when' guidance concerns compute modes (server vs browser), which is execution plumbing rather than task selection. An agent gets no basis for choosing this tool over the many other LEI/compliance checks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_license_compatibilityLicense Compatibility CheckerB
Read-onlyIdempotent
Inspect

License Compatibility Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-203-embedded-license-selector, art-198-cross-license-rights-comparator. Output feeds: art-205-license-terms-assembler. Open at: https://ainumbers.co/chaingraph/art-204-license-compatibility-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
compatibleNo
disclaimerNo
reason_codesNo
child_licenseNo
parent_licenseNo
spdx_satisfiesNo
required_child_licenseNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds meaningful behavior beyond them: inputs are processed transiently with no storage/logging/retention, execution is deterministic, an AP2 artifact with execution_hash is exported for chain provenance, and the compute-mode/delegation semantics are spelled out. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Identity is front-loaded, but the body carries boilerplate: a full page URL, a long FV-status hash receipt, and a compute-mode passage that repeats the schema. The chain-provenance and data-handling sentences earn their place; the hash and URL are noise for a selecting agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and all parameters are schema-documented. The description still covers chaining, compute binding, data retention, and verification status, which is nearly everything an agent needs. The remaining gap is that the decision function itself is never characterized beyond 'policy_parameters'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parent_hashes, parent_tool_ids, policy_parameters and compute are already fully documented in the schema. The description adds the compute-mode semantics but largely duplicates the schema text and offers no extra meaning for parent_hashes/parent_tool_ids ordering. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with 'License Compatibility Checker', which largely restates the tool name/title, and labels it a 'compliance_mandate' compute node. It never states what compatibility actually means or what the tool determines, though the chain references (consumes art-203 license-selector and art-198 rights-comparator, feeds art-205 license-terms-assembler) do situate it in a pipeline. Vague on the core operation, clear enough on its position among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only directive is 'Use synthetic or anonymised inputs only', which is a data-handling constraint rather than when-to-use guidance. Nothing tells the agent when to choose this over related siblings such as certify_license_election, select_embedded_license, or assemble_license_terms. The compute-mode guidance mirrors the schema and does not address alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_linea_l2_finality_windowLinea L2 Finality Window ClassifierC
Read-onlyIdempotent
Inspect

Linea L2 Finality Window Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-290-check-linea-l2-finality-window.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rationaleNo
draft_pinnedNo
finality_tierNo
corridor_cutoffNo
safe_to_releaseNo
reorg_window_riskNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive/closed-world), the description discloses genuinely useful behavior: deterministic computation, transient processing with no storage/logging/retention, a synthetic-inputs-only constraint, and export of an AP2 artifact carrying execution_hash for provenance. These add real context, though much of it is shared boilerplate across the tool family.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is redundant ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and not front-loaded; the actual purpose is never stated, while URLs and FV-status hashes consume disproportionate space. Several sentences do not earn their place relative to what an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and compute/privacy/artifact behaviors are covered. However, for a deterministic domain classifier with a nested, free-form policy_parameters object, the description never conveys the decision semantics and punts the field names to an off-tool manifest, leaving a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description re-explains the compute enum already documented in the schema but only defers on the substantive input: 'See the tool's manifest for field names' for policy_parameters. It adds little meaning beyond the schema for the domain parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the title ('Linea L2 Finality Window Classifier') and laps on generic OpenChainGraph infrastructure boilerplate ('compute node', 'compliance_mandate'). It never says what a Linea L2 finality window is, what the check decides, or how it differs from siblings like classify_bold_challenge_finality or classify_ledger_consensus_finality. This is close to a tautology of the name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only actionable guidance concerns compute mode (auto/server/browser), which is invocation mechanics, not tool selection. There is no statement of when to use this classifier versus the many other finality/settlement classifiers, and no prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checklist_step_receiptMint a hash-chained checklist step receiptAInspect

Completes ONE step of a checklist/SOP run and returns its OCG v0.4 step receipt: execution_hash chains to prev_step_receipt_digest (pass the previous step's execution_hash, or omit for step 0). A blocking-gate step with evidence_requirement != "none" and no evidence supplied is refused (the caller enforces step order; this tool enforces the evidence requirement per step). Call once per step in order, then pass the full ordered list of returned receipts to checklist_verify_run to check the chain and mint the run receipt.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepYesThe step object from the definition's steps[] array being completed.
evidenceNoEvidence payload, e.g. { text_digest }, { file_sha256 }, or { attestation_digest }. Required unless evidence_requirement is "none".
timestampYesISO 8601 completion timestamp (caller-supplied for determinism).
step_indexYesZero-based index of this step in the definition.
completer_keyNoIdentifier of who/what completed the step (e.g. an agent id). Never real PII.
definition_digestYesThe definition_digest from checklist_validate_definition.
prev_step_receipt_digestNoexecution_hash of the previous step's receipt. Omit for the first step in the run.

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no behavioral annotations (readOnlyHint, destructiveHint etc. all false), the description reveals key side effects: it returns a hashed receipt that chains to the previous step, enforces evidence requirements for blocking steps, and refuses execution if evidence is missing. It does not discuss idempotency or detailed failure modes, but provides sufficient transparency for safe use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that efficiently conveys purpose, usage, parameters, chaining logic, and enforcement rules. It is front-loaded with the main action and contains no redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested step object, chaining, evidence rules) and lack of output schema, the description provides sufficient context: it explains the return value (OCG v0.4 step receipt with execution_hash), the chaining requirement, the evidence enforcement, and references the verifying sibling tool. No gaps remain for a competent agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant value beyond the schema. For example, it explains that prev_step_receipt_digest must be the execution_hash of the previous step (or omitted for step 0), and that evidence is required unless evidence_requirement is 'none'. These constraints are not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it completes one step of a checklist/SOP run and returns a receipt. It explicitly references the sibling tool checklist_verify_run for subsequent verification, distinguishing its role in the workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit instructions: 'Call once per step in order' and specifies that evidence is required for blocking steps when evidence_requirement is not 'none'. It also directs the caller to pass the ordered list of receipts to checklist_verify_run, giving clear guidance on when to use this tool and how to sequence it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checklist_validate_definitionValidate a checklist/SOP definitionA
Read-onlyIdempotent
Inspect

Validates a checklist or SOP definition JSON against the CHECKRUN-1 schema (definition_id, title, semver version, non-empty steps[] each with step_id/title/instruction/evidence_requirement (none|text|file-digest|attestation)/gate (blocking|advisory)). Returns valid:true/false plus a field-by-field error list. Pair with checklist_step_receipt to run the definition headlessly.

ParametersJSON Schema
NameRequiredDescriptionDefault
definitionYesThe checklist/SOP definition object to validate.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. The description adds context on the return structure (valid:true/false plus field-by-field error list) and the specific schema validated, which goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action, and every sentence adds value: validating against schema, listing fields, mentioning return type, and suggesting a complementary tool. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a validation tool with one parameter and no output schema, the description covers input schema details, output format, and a useful pairing suggestion. It is fairly complete, though it could optionally mention potential edge cases or limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the input schema only describes 'definition' as an object. The description significantly expands by enumerating the expected fields (definition_id, title, semver version, non-empty steps with subfields), adding crucial meaning for correct usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool validates a checklist/SOP definition JSON against the CHECKRUN-1 schema, listing the required fields. It also distinguishes itself from the sibling tool checklist_step_receipt by noting the pairing for headless execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for validation before running a definition, mentioning pairing with checklist_step_receipt. However, it does not explicitly state when not to use it or compare with other similar siblings like checklist_verify_run.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checklist_verify_runVerify a checklist run's hash chain and Merkle rootA
Read-onlyIdempotent
Inspect

Recomputes and checks a checklist run: every step receipt's execution_hash, the hash-chain link between consecutive steps, and (if a run_receipt is supplied) the §20.1 RFC 6962 Merkle root over every step. Returns valid:true/false, per-step ok/hash_ok/link_ok, and broken_at (the zero-based index of the first broken step, or null). Same recompute a human gets from the browser Run Verifier.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_receiptNoThe run receipt to check the Merkle root and its own execution_hash against. Omit to check only the step chain.
step_receiptsYesOrdered array of step receipts, as returned by checklist_step_receipt.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true. The description confirms these by describing recomputation without side effects. It adds detail on the verification process but does not disclose any new behavioral traits beyond what annotations and schema provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy. First sentence covers operations and output, second provides analogy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description fully explains return values (valid, per-step ok/hash_ok/link_ok, broken_at). Combined with schema and annotations, the tool is fully comprehensible with no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds value by explaining the effect of omitting run_receipt (only step chain check) and that step_receipts come from checklist_step_receipt. This clarifies parameter usage beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it recomputes and checks a checklist run, listing three specific verifications (execution_hash, hash-chain link, Merkle root) and the output structure. It distinguishes from sibling tools like checklist_validate_definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While it implies verification use, it does not mention exclusions or when another tool might be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_mcp_registry_entryMCP Registry Entry Conformance CheckerC
Read-onlyIdempotent
Inspect

MCP Registry Entry Conformance Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-148-mcp-authorization-metadata-validator. Open at: https://ainumbers.co/chaingraph/art-149-mcp-registry-entry-conformance.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
missingNo
name_okNo
schema_okNo
version_okNo
entry_validNo
has_remotesNo
has_packagesNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real context: inputs are processed transiently and not stored, logged or retained; synthetic/anonymised inputs are required; results are deterministic; an AP2 artifact with execution_hash is exported for provenance. The compute-mode semantics largely duplicate the schema, but the data-handling and provenance disclosures are genuine added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is boilerplate-heavy: OpenChainGraph compute-node framing, the compute-mode repetition, a documentation URL, and a long FV-status paragraph about a snapshot that verifies offline. The actual purpose of the check is buried and never developed, so the length is not earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Structurally the definition is supported: an output schema exists (so return shape needn't be described) and annotations cover safety behaviour. What is missing is the core content — what 'conformance' means for a registry entry and how it differs from the numerous adjacent MCP lint/validate tools — which matters given the crowded sibling space.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, and the baseline is 3. The description reinforces the compute default behaviour and names the chain parent-hash/parent-tool-id pairing and export purpose, but adds no format or syntax detail beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The body opens by restating the title ('MCP Registry Entry Conformance Checker: OpenChainGraph compute node') and then describes compute infrastructure rather than what the check actually verifies. It never states the conformance criteria or distinguishing scope from the many neighbouring MCP tools (lint_mcp_server_conformance, lint_mcp_tool_definition, validate_mcp_server_json, validate_mcp_server_identity, score_mcp_server_readiness). This is effectively a title restatement plus boilerplate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit 'use this when' or 'use X instead' guidance. The only routing signal is the incidental note that it consumes upstream artifacts from art-148-mcp-authorization-metadata-validator, which implies a pipeline position but never tells the agent when this tool is the right choice. With a large cluster of overlapping MCP conformance siblings, this gap is significant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_mica_register_presenceMiCA Register Presence CheckC
Read-onlyIdempotent
Inspect

MiCA Register Presence Check: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-602-mica-register-presence-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
searchNo
verdictNo
snapshotNo
rationaleNo
not_provenNo
match_countNo
match_foundNo
matched_rowNo
matched_rowsNo
register_typeNo
register_labelNo
retrieval_dateNo
entity_identifierNo
judgment_requiredNo
register_source_refNo
register_snapshot_digestNo
verdict_unavailable_reasonNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already give readOnly/idempotent/non-destructive/not-open-world, so the bar is lower, and the description genuinely adds: inputs are processed transiently and not stored or logged, and the call exports an AP2 artifact carrying execution_hash for chain provenance. Those are concrete behavioral facts an agent cannot get from the annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Large blocks are low-value boilerplate (kernel/Workers/gpu delegation, a doc URL, and a long FV-status hash receipt with subscription caveats) that bury the one useful line about transient processing. The operation itself is never front-loaded, so the text is both overlong and poorly ordered for the agent's first decision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. But for a compliance decision node, the description omits what the check evaluates and what to place in policy_parameters, leaving the agent unable to invoke it correctly without external lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids; the description largely repeats the compute-mode semantics. Critically, policy_parameters (the actual decision input) is deferred to 'see the tool's manifest for field names', so the substantive input semantics remain unspecified in both places. Baseline 3 applies given the high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the name/title ('MiCA Register Presence Check: OpenChainGraph compute node') and then spends its length on infrastructure boilerplate rather than the actual operation. It never says what a 'register presence check' verifies (e.g., whether a CASP/token appears in an ESMA register), nor distinguishes it from siblings such as check_mica_reserve_disclosure or assess_mica_casp_readiness. What function is performed is left entirely to inference from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is compute-mode guidance (auto vs browser, gpu:true always delegates), which is selection help but of a mechanical rather than task nature. Nothing states when to reach for this tool versus the many adjacent MiCA tools, and no prerequisites, exclusions, or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_mica_reserve_disclosureCheck MiCA Reserve DisclosureC
Read-onlyIdempotent
Inspect

Check MiCA Reserve Disclosure: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-512-check-mica-reserve-disclosure.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofNo
fenceNo
cadenceNo
coverageNo
roundingNo
sign_offNo
issuer_idNo
rationaleNo
not_provenNo
token_typeNo
compositionNo
segregationNo
rules_versionNo
disclosure_refNo
judgment_requiredNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the description is not required to restate them. It adds real behavioral context beyond them: compute:auto is server-side for gpu:false nodes with a registered kernel, compute:browser forces client-side execution and returns a delegation URL, gpu:true nodes always delegate, inputs are processed transiently and never stored/logged, and the call exports an AP2 artifact with execution_hash. The offline-verifiable FV-status snapshot is also disclosed. Only the domain result semantics are unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, but the body is dominated by runtime/provenance boilerplate (Cloudflare Workers, browser delegation URL, AP2 execution_hash, a full URL and a 64-character FV hash) that crowds out the domain substance. The one sentence an agent most needs — what a MiCA reserve disclosure check actually validates — is absent while low-value infrastructure text occupies most of the field.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values need not be described, and annotations plus the description together fully cover the execution envelope: compute modes, privacy/transience, provenance artifact, and verification status. What is missing is the compliance substance — the criteria the MiCA reserve-disclosure check applies and what policy_parameters it consumes — which the description defers to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, and the description largely mirrors the compute-mode text. It adds nothing new about policy_parameters other than pointing to 'the tool's manifest for field names', which leaves the actual decision inputs opaque. Baseline 3 for high-coverage schemas is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (MiCA reserve disclosure) and frames it as a deterministic OpenChainGraph compute node with a compliance_mandate, but the core purpose statement is essentially the title restated plus runtime boilerplate. It never distinguishes this from close siblings such as check_genius_reserve_disclosure, check_genius_reserve_disclosure_conformance, or precheck_reserve_attestation, so an agent cannot tell which reserve-disclosure check to pick. Minimum-viable purpose clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance: nothing says when this check applies versus assess_mica_casp_readiness, run_mica_casp_fit, or the sibling reserve-disclosure tools. The only directive is 'Use synthetic or anonymised inputs only', which is an input constraint rather than a routing rule. One moderately useful constraint does not constitute usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_mt101_coexistence_readinessSwift MT101 Coexistence Readiness DiffC
Read-onlyIdempotent
Inspect

Swift MT101 Coexistence Readiness Diff: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/577-mt101-coexistence-readiness-diff.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real behavioral context beyond them: deterministic computation, transient non-retention of inputs, the AP2 artifact + execution_hash output, and a verifiable FV-status receipt. It does not, however, explain what the diff evaluates or any error/failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with a title restatement, then dominated by infrastructure boilerplate, a raw URL, and a verbose FV-status/hash paragraph. The single sentence that matters to a caller (what the readiness diff computes) is absent while low-value receipt text is retained.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should at least characterize the result; it only says an AP2 artifact with execution_hash is exported, leaving the actual diff verdict/fields unexplained. For a domain-specific compliance check with a free-form nested policy_parameters object, this is materially incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented. The description restates the compute-mode rules and chaining intent but adds no new field semantics (e.g. what policy_parameters keys the MT101 check expects beyond 'see the manifest').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the name and title verbatim ('Swift MT101 Coexistence Readiness Diff: OpenChainGraph compute node') and never says what a 'coexistence readiness diff' actually checks or against what (MT101 vs pain.001/ISO 20022?). Nothing distinguishes it from sibling assess_* / run_*_fit diagnostics beyond the title token.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative guidance. The only conditional text concerns compute mode routing (auto/server/browser), which is invocation mechanics, not selection guidance against the many sibling readiness-check tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_muni_arbitrage_spending_exceptionMuni Arbitrage Spending-Exception CheckerC
Read-onlyIdempotent
Inspect

Muni Arbitrage Spending-Exception Checker: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-569-muni-arbitrage-spending-exception-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
decisionNo
as_of_dateNo
issue_dateNo
milestonesNo
scope_noteNo
clause_noteNo
overall_statusNo
rejected_inputsNo
de_minimis_minorNo
elected_exceptionNo
de_minimis_cap_minorNo
gross_proceeds_minorNo
reasonable_retainageNo
total_expenditures_minorNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety bar is lower, yet the description adds real behavioural context: server-vs-browser compute modes and the delegation URL returned for browser execution, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash. These are traits not derivable from the annotations. The only shortfall is that compute-mode behaviour partially duplicates the compute parameter's own schema description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is information-dense with little outright repetition, but it front-loads infrastructure boilerplate and a long FV-status/URL sentence ahead of any statement of purpose. The multi-sentence FV-status receipt explanation is the weakest candidate for earning its place in a tool-selection description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be described, and annotations plus the schema cover safety and parameters. What is missing is the domain substance: an agent still cannot tell what the spending-exception decision evaluates or what policy_parameters should contain, which is the core thing needed to call it correctly. Infrastructure concerns are covered; the actual check is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes the compute-mode semantics but adds nothing for the chaining parameters, and explicitly defers field names for policy_parameters to 'the tool's manifest'. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title verbatim ('Muni Arbitrage Spending-Exception Checker') and then labels it a 'compute node (compliance_control)' — a category tag, not an explanation of what the tool actually computes. It never states what a muni arbitrage spending exception is, what input it evaluates, or what decision it produces, so among the many check_* siblings an agent cannot tell this apart. This is essentially a tautological restatement plus infrastructure metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no alternative tool is named despite dozens of near-neighbours like check_arbitrage... or other compliance checks. The only directive is 'Use synthetic or anonymised inputs only', which is an input restriction rather than selection guidance. An agent is left to infer applicability purely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_nis2_art21_measuresNIS2 Article 21 Gap Checker (Ten Cybersecurity Risk-Management Measures)B
Read-onlyIdempotent
Inspect

NIS2 Article 21 Gap Checker (Ten Cybersecurity Risk-Management Measures): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-141-nis2-entity-scope-classifier. Output feeds: art-143-nis2-penalty-exposure-calculator. Open at: https://ainumbers.co/chaingraph/art-142-nis2-art21-gap-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
critical_gapsNo
overall_gradeNo
compliance_scoreNo
measures_summaryNo
remediation_priorityNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, openWorld=false), the description adds genuinely useful behavior: inputs are processed transiently and not stored/logged/retained, execution is deterministic, an AP2 artifact with execution_hash is exported, and compute mode decides server vs browser delegation. It also warns 'Use synthetic or anonymised inputs only', which is a substantive operational constraint. The gaps are around kernel failure/timeout behavior, which is minor given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure boilerplate, a repeated title, compute-mode mechanics, and an FV-status hash URL, while the sentence that actually defines the domain operation is absent. The 200-word dump is not front-loaded around what the tool decides; the useful chain-routing sentences are buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with a nested object, an output schema, and annotations, the plumbing side is well covered (compute binding, chaining, artifact export, provenance, privacy). What is missing is domain completeness: nothing says what inputs the twenty-one-measure check requires or what a 'gap' result covers beyond the output schema. Adequate but with a clear domain-side hole.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add anything about the parameters the schema lacks — most importantly it does not enumerate or exemplify the policy_parameters fields (it defers with 'See the tool's manifest for field names', mirroring the schema). The compute-mode explanation is repeated from the schema rather than extended.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause name the resource (NIS2 Article 21 ten measures) and imply a gap check, so an agent can roughly place it. But the body never states the actual operation — assessing an entity's controls against the ten measures — and does not distinguish it from close siblings such as check_nis2_governance_readiness, score_nis2_supply_chain_diligence, or classify_nis2_entity. The identifying content is mostly carried by the title, not the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no named alternatives among the many NIS2 siblings. The chain-position statements ('Consumes upstream artifacts from: art-141-nis2-entity-scope-classifier. Output feeds: art-143-nis2-penalty-exposure-calculator') do give real routing value for deciding where this node fits. That is implied usage context, not directive guidance, so a 3 is warranted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_nis2_governance_readinessNIS2 Governance Readiness Checker (Art. 20 — Management Body Accountability)C
Read-onlyIdempotent
Inspect

NIS2 Governance Readiness Checker (Art. 20 — Management Body Accountability): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-145-nis2-ict-supply-chain-diligence-scorer. Open at: https://ainumbers.co/chaingraph/art-146-nis2-governance-readiness-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real behavioural context beyond them: transient non-retained processing of inputs, export of an AP2 artifact carrying execution_hash for chain provenance, and consumption of an upstream artifact from a specific tool. The compute-mode boilerplate largely duplicates the schema, but the provenance and data-handling disclosures are substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A dense run-on block that front-loads a duplicate of the title and then buries the reader in infrastructure detail (Cloudflare Workers kernels, browser delegation URLs, FV-status snapshot paths) that adds little for tool selection. Information density relative to task-relevant content is poor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compliance readiness checker with no output schema and an opaque nested policy_parameters object, the description should explain what dimensions are evaluated and what inputs are expected. Instead it devotes its length to compute-binding mechanics, leaving an agent unable to know what to pass or what result to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the structured fields already do the heavy lifting. The description only adds meaning for parent_hashes/parent_tool_ids by naming the upstream artifact (art-145), while the core policy_parameters object is left opaque with a pointer to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence is a verbatim restatement of the title, so the only purpose signal is the title itself ('NIS2 Art. 20 management body accountability readiness'). The body never elaborates what 'governance readiness' actually assesses, and nothing distinguishes it from siblings such as check_nis2_art21_measures or classify_nis2_entity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is 'Use synthetic or anonymised inputs only', which constrains input handling but does not say when to pick this tool over the many neighbouring NIS2 tools. There is no when-to-use, when-not-to-use, or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_nway_balance_closureN-Way Balance Closure CheckC
Read-onlyIdempotent
Inspect

N-Way Balance Closure Check: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-525-nway-balance-closure-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
systemsNo
triplesNo
decisionNo
pairwiseNo
scope_noteNo
break_pairsNo
as_of_valuesNo
system_countNo
triple_countNo
boundary_noteNo
closure_holdsNo
measure_labelNo
rejected_inputsNo
suspect_systemsNo
as_of_consistentNo
declared_disagreementsNo
max_abs_residual_minorNo
authoritative_system_idNo
closure_tolerance_minorNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), but the description adds genuinely useful behavioral context beyond them: inputs are processed transiently and not stored/logged, synthetic or anonymised inputs are required, execution is deterministic, and an AP2 artifact with execution_hash is exported for chain provenance. The client-vs-server delegation rules add further operational clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool name and the operationally important privacy/execution notes, but much of the text is boilerplate (hosted URL, FV-status JSON path, repeated 'gpu:false nodes with a registered kernel' phrasing) that crowds out the one thing missing: what the check computes. Efficient in density, weak in prioritisation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compute node with an output schema and nested policy_parameters, execution semantics are well covered, but the substantive core is absent: no statement of what 'N-way balance closure' validates or what policy_parameters fields mean ('see the tool's manifest' punts elsewhere). An agent knows how it would run but not what to ask it or when it is the right tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics (duplicating the schema) and defers policy_parameters field names to 'the tool's manifest', adding no meaning beyond structured data. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool's name/title as a 'compliance_control compute node' and then spends its length on platform mechanics (compute modes, transient processing, artifact export, hosted URL, FV-status path) rather than saying what an N-way balance closure check actually verifies. An agent cannot tell from this text what subject matter or condition is being checked, nor distinguish it from siblings like check_iolta_three_way_reconciliation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no comparison to the many adjacent reconciliation/balance-check siblings. The only conditional language concerns the transport mode (compute:auto/server/browser), which is invocation mechanics, not task-level usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_official_statement_completenessMunicipal Official Statement Completeness CheckerC
Read-onlyIdempotent
Inspect

Municipal Official Statement Completeness Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-400-check-official-statement-completeness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
compliantNo
gap_countNo
table_sourceNo
asserted_noteNo
table_versionNo
disambiguationNo
element_statusNo
elements_checkedNo
regulatory_basisNo
completeness_gradeNo
material_event_gapsNo
material_event_categories_checkedNo
continuing_disclosure_undertaking_presentNo

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description does add real behavioral context beyond that: transient, non-retained processing of inputs, the AP2 artifact with execution_hash export, and the compute-mode delegation behavior. However, it discloses nothing about what a completeness result contains or how failures are reported.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence merely repeats the title, and much of the body is reusable platform boilerplate (compute binding, transient processing, URL, FV-status hash) rather than tool-specific content. The actual purpose is never front-loaded, and the trailing spec URL/hash adds length without helping an agent decide or invoke.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, but the domain semantics are entirely absent: what makes a municipal official statement 'complete', what policy_parameters fields drive the check, and what the verdict looks like are all unexplained. For a specialized compliance checker with an opaque nested object parameter, this leaves an agent unable to use it meaningfully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates compute-mode semantics (already in the schema) but adds nothing about what policy_parameters must contain — it points to an external manifest, which is unhelpful at call time.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name identifies the resource ('Municipal Official Statement Completeness Checker'), which tells an agent it validates completeness of a muni official statement. But the description body never elaborates on what 'completeness' covers or what is checked; it immediately pivots to platform boilerplate. It does not distinguish this from siblings like check_cra_annex1_completeness or validate_audit_trail_completeness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no named alternatives among the many '*_completeness' siblings. The only usage-adjacent line is 'Use synthetic or anonymised inputs only,' which is an input constraint rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_operator_exit_portabilityOperator Exit & Data PortabilityB
Read-onlyIdempotent
Inspect

Operator Exit & Data Portability: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-520-operator-exit-data-portability.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
as_ofNo
portableNo
rationaleNo
categoriesNo
componentsNo
dependenciesNo
escrow_existsNo
category_countNo
rejected_inputsNo
escrow_descriptionNo
notice_period_daysNo
stranded_categoriesNo
contractual_operatorNo
undeclared_categoriesNo
notice_period_declaredNo
stranded_category_countNo
declared_component_countNo
exit_readiness_exceptionsNo
operator_controlled_countNo
supplier_controlled_countNo
operator_claim_unsupportedNo
undeclared_component_countNo
transition_assistance_termsNo
proprietary_format_categoriesNo
single_supplier_no_substituteNo
transition_assistance_declaredNo
operator_control_ratio_declaredNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (readOnly, idempotent, non-destructive), and the description adds genuinely non-derivable context: inputs are 'processed transiently... not stored, logged, or retained,' the 'Use synthetic or anonymised inputs only' constraint, browser delegation behavior for gpu:true nodes, and that the FV-status receipt verifies offline. The one weak spot is that it does not explain what the returned artifact/decision contains operationally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two clauses are redundant ('...compute node (attestation_mandate). Deterministic OpenChainGraph compute node.'), and a full 64-char FV-status hash plus an external URL consume disproportionate space relative to a four-parameter tool. The useful data-handling sentence is buried mid-paragraph after infrastructure boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full schema coverage, the description need not explain return values, and it does supply the compute/delegation model, the transient-processing guarantee, and the chaining context. An agent has enough to invoke it correctly; only the meaning of the resulting portability verdict is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute enum, parent_hashes/parent_tool_ids chaining and policy_parameters are already documented. The description restates the compute-mode semantics rather than extending them, and explicitly defers policy_parameters field names to 'the tool's manifest,' adding no new meaning. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title restates the name ('Operator Exit & Data Portability') and the body identifies the tool as an 'OpenChainGraph compute node (attestation_mandate)' that 'Exports an AP2 artifact with execution_hash for chain provenance.' That tells an agent the mechanics (deterministic compute, artifact export) but never states what the check actually evaluates about operator-exit or portability requirements, so the substantive purpose is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on compute modes (auto/server/browser), but that is really a parameter explanation consumed from the schema. Nothing says when an agent should reach for this tool versus the hundreds of sibling check_*/assess_* tools, nor any prerequisite trigger condition for an operator-exit review.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_private_student_loan_disclosuresPrivate Student Loan Disclosure & Rescission CheckerC
Read-onlyIdempotent
Inspect

Private Student Loan Disclosure & Rescission Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-405-check-private-student-loan-disclosures.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
compliantNo
gap_countNo
rescissionNo
final_stageNo
table_sourceNo
table_versionNo
approval_stageNo
disambiguationNo
elements_checkedNo
federal_idr_noteNo
regulatory_basisNo
application_stageNo
completeness_gradeNo
federal_idr_out_of_scopeNo
self_certification_presentNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description adds substantive behavior: inputs are processed transiently and not stored or logged, compute:auto vs browser changes execution location and may return a browser delegation URL, and an AP2 artifact with execution_hash is exported. That is real operational context the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text front-loads the tool title but then spends most of its length on compute-routing, retention, and an FV-status receipt URL/hash that is irrelevant to invoking the tool. The domain purpose is buried and the dangling hash string is pure noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, but the description still omits the core domain logic: what a compliance_mandate check on private student loan disclosures actually evaluates and what policy_parameters the decision function consumes. An agent can invoke the transport but cannot reason about the check itself.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are documented in the schema. The description restates the compute mode semantics but adds nothing about the parameters beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title and then labels the tool a 'compliance_mandate' compute node without ever saying what the check determines (e.g. whether private student loan disclosures satisfy rescission requirements). The actual verb+resource is only inferable from the tool name; the body text is infrastructure boilerplate, making this effectively tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no differentiation from close siblings such as check_reg_e_remittance_disclosure, check_retail_installment_disclosures, or check_debt_validation_notice. The only directive ('Use synthetic or anonymised inputs only') concerns input hygiene, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_producer_license_reciprocityNAIC Producer License Reciprocity CheckC
Read-onlyIdempotent
Inspect

NAIC Producer License Reciprocity Check: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-267-check-producer-license-reciprocity.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
loa_codesNo
table_sourceNo
table_versionNo
all_reciprocalNo
resident_stateNo
not_legal_adviceNo
regulatory_basisNo
invalid_loa_codesNo
coverage_by_targetNo
target_state_countNo
non_standard_statesNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses several genuine traits: deterministic execution, transient server-side processing with no storage/logging/retention, an explicit 'use synthetic or anonymised inputs only' constraint, browser delegation behavior for gpu:true nodes, and an AP2 artifact export with execution_hash for provenance. Most of this is real behavioral context not derivable from the annotations, though much is shared boilerplate across sibling nodes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated and poorly front-loaded: the tool's actual subject is buried under generic compute-node boilerplate, and it trails off into a raw artifact URL and a long FV-status hash whose relevance to invoking the tool is marginal. Several sentences (offline receipt verification, AP2 chain provenance) do not help an agent decide or call correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a nested, free-form policy_parameters object whose fields are undocumented ('see the tool's manifest'), and the description does not compensate by naming or exemplifying any input. While an output schema exists, the domain semantics of the decision this node computes are never stated, leaving the agent unable to know what to pass for a meaningful result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reiterates the compute mode semantics already fully documented in the schema and explicitly defers the substantive input ('policy_parameters') to 'the tool's manifest for field names', adding no meaning beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title verbatim ('NAIC Producer License Reciprocity Check') and then pivots to generic infrastructure detail ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'). It never states in its own words what the check decides or what distinguishes it from sibling compliance checks like check_license_compatibility or calculate_naic_clo_rbc_factor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only conditional guidance is about the compute mode parameter ('auto' vs 'browser' vs gpu:true delegation), which is duplicated in the schema. There is no when-to-use-this-tool-vs-alternatives guidance, no prerequisite or context for running a producer license reciprocity check, and no indication of when the check is or is not applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_purpose_code_requirementISO 20022 Purpose Code Requirement CheckerC
Read-onlyIdempotent
Inspect

ISO 20022 Purpose Code Requirement Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-247-prevalidation-readiness-scorer. Open at: https://ainumbers.co/chaingraph/art-243-purpose-code-requirement-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
pii_noteNo
table_sourceNo
swiftgo_notesNo
table_versionNo
swiftgo_max_usdNo
regulatory_basisNo
swiftgo_eligibleNo
swiftgo_amount_okNo
code_type_requiredNo
jurisdiction_reasonNo
required_code_typesNo
swiftgo_category_okNo
purpose_format_validNo
purpose_code_providedNo
purpose_code_compliantNo
category_purpose_code_providedNo
swiftgo_accepted_category_codesNo
jurisdiction_requires_purpose_codeNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses meaningful behavior: deterministic computation, server-side vs. browser delegation logic, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash for provenance. The synthetic-input restriction is a useful operational constraint, though the compute-mode semantics partly duplicate the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is somewhat front-loaded, but a large fraction is infrastructure boilerplate (compute binding, FV-status snapshot URL, provenance artifact) that does not help an agent select or invoke the tool. The long FV-status sentence and hash string add bulk with little invocation value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be explained, but the description never describes the decision function itself — what policy_parameters typically contain or what the requirement check evaluates. For a compliance-mandate node with an opaque free-form policy_parameters object, this leaves the agent unable to construct a meaningful call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description adds no field-level meaning for policy_parameters beyond deferring to "the tool's manifest," so the baseline of 3 for high-coverage schemas applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the name/title verbatim ("ISO 20022 Purpose Code Requirement Checker: OpenChainGraph compute node") and never explains what the check actually determines — i.e. whether an ISO 20022 payment requires a purpose code, or under which regimes. It names the node id (art-243) and downstream consumer (art-247-prevalidation-readiness-scorer) but offers no distinguishing scope relative to the many sibling check_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no named alternative among the numerous sibling check_* tools. The only usage-flavored statements are the safety constraint "Use synthetic or anonymised inputs only" and the compute-mode explanation, neither of which tells an agent when this check applies versus, say, check_iso20022_pqc_readiness or prevalidation_readiness_scorer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_qm_points_and_feesQM Points and Fees TestB
Read-onlyIdempotent
Inspect

QM Points and Fees Test: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-219-qm-apr-apor-spread. Open at: https://ainumbers.co/chaingraph/art-218-qm-points-and-fees.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
passNo
yearNo
limitNo
headroomNo
limit_pctNo
limit_typeNo
tier_labelNo
fr_citationNo
limit_fixedNo
loan_amountNo
effective_dateNo
points_and_feesNo
regulatory_basisNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered, but the description genuinely adds: inputs are processed transiently and not stored/logged, compute modes change execution location (server vs browser delegation URL), gpu:true always delegates, and an AP2 artifact with execution_hash is exported for chain provenance. These are meaningful execution behaviors beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the body is padded with infrastructure boilerplate and a verbose FV-status sentence ('a snapshot, not a subscription; this receipt verifies offline...') that consumes space without helping an agent invoke the tool. Several sentences restate the same compute-binding rules.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the description covers execution mode, privacy, and provenance adequately. However, for a regulatory compute node it omits the substantive content the agent needs to trust the result — what the points-and-fees test measures and what policy_parameters it expects — leaving domain semantics thin despite rich logistics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description's compute-mode explanation largely restates the schema's own enum description and adds little about policy_parameters beyond deferring to the manifest. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause identify this as the 'QM Points and Fees Test,' a compliance compute node, but the description never states what the test actually evaluates (e.g., the points-and-fees threshold against a QM limit). It spends its first sentences on execution infrastructure rather than the domain purpose, so an agent must infer the operation from the name alone. It does not differentiate itself from related siblings like classify_qm_apr_apor_spread.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use this tool versus the many 'check_*' and 'classify_qm_*' siblings. The only routing hint is 'Output feeds: art-219-qm-apr-apor-spread,' which indicates downstream consumption, not when to invoke this tool. No preconditions, no exclusions, no alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_reg_e_remittance_disclosureReg E Remittance Disclosure Consistency CheckC
Read-onlyIdempotent
Inspect

Reg E Remittance Disclosure Consistency Check: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-550-reg-e-remittance-disclosure-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
as_ofNo
rationaleNo
rejected_inputsNo
regulatory_basisNo
send_amount_centsNo
disclosure_consistentNo
discrepancy_amount_centsNo
discrepancy_amount_displayNo
exchange_rate_disclosed_e6No
total_fees_disclosed_centsNo
exchange_rate_disclosed_displayNo
amount_recipient_disclosed_centsNo
amount_recipient_recomputed_centsNo
amount_recipient_recomputed_displayNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description adds real behavioral context beyond them: transient processing with no storage/logging/retention, server-vs-browser compute mode semantics, browser delegation URL behavior, and emission of an AP2 artifact with execution_hash for provenance. It does not describe failure modes or the returned evaluation result, but the data-handling and execution disclosures are substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and sentence structure is clean, but a large fraction of the text is infrastructure boilerplate (Cloudflare Workers, gpu:false kernels) and an embedded 64-character FV-status hash URL that does not help an agent select or call the tool. Roughly half the content is noise relative to selection value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and full annotations are present, so return-format and safety details need not be repeated. However, for a domain-specific compliance decision function, the description explains the execution substrate thoroughly while saying essentially nothing about the actual Reg E check, its rules, or its inputs, leaving the core of the tool undescribed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents compute, parent_hashes, parent_tool_ids and policy_parameters, giving a baseline of 3. The description adds nothing about parameter meaning and explicitly punts the decision-function fields to an external manifest ('See the tool's manifest for field names'), so the most consequential inputs remain semantically opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource is carried entirely by the name/title ('Reg E Remittance Disclosure Consistency Check'), and the description's first clause simply restates that title verbatim. It never explains what 'consistency' is actually validated (disclosure content, thresholds, formats) and gives no differentiation from the many sibling check_* disclosure tools. The purpose is inferable from the name but not elaborated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions distinguishing this from siblings like compute_remittance_disclosure or check_private_student_loan_disclosures, and no exclusions. The only usage-adjacent sentence ('Use synthetic or anonymised inputs only') is an input constraint, not routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_retail_installment_disclosuresRetail Installment Contract TILA Disclosure CheckerC
Read-onlyIdempotent
Inspect

Retail Installment Contract TILA Disclosure Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-332-build-amortization-schedule, art-324-tvm-npv. Open at: https://ainumbers.co/chaingraph/art-404-check-retail-installment-disclosures.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tie_outsNo
compliantNo
disambiguationNo
finance_chargeNo
amount_financedNo
tolerance_centsNo
regulatory_basisNo
total_of_paymentsNo
dealer_participationNo
amortization_provenanceNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the read-only, idempotent, non-destructive, closed-world profile, so the bar is lower, and the description clears it by disclosing the compute-binding behavior (server-side on Workers vs browser delegation URL), transient non-retention of inputs, and AP2 artifact/hash export for chain provenance. These are genuine operational traits not present in the annotations. It stops short of saying what the check output or failure modes look like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description leads with infrastructure boilerplate rather than the tool's purpose, restates the compute-mode rules that the input schema already documents verbatim, and spends sentences on URL and /fv-status receipt provenance. The substantive compliance intent is never front-loaded, so the text is both long and mis-prioritized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the upstream artifact dependencies (art-332, art-324) are named. However, the description omits what policy_parameters must contain and what the disclosure check actually evaluates, which is the core information an agent needs for a compliance decisioning node with a nested free-form parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description largely restates the compute-mode semantics that the schema itself spells out and explicitly defers policy_parameters field names to 'the tool's manifest', adding little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify a specific check ('retail installment contract TILA disclosures'), but the description body never states what the tool verifies — which disclosure fields it examines or what verdict it returns. It also does nothing to distinguish itself from close siblings like check_private_student_loan_disclosures or check_reg_e_remittance_disclosure. Purpose is inferred almost entirely from the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no routing to an alternative sibling. The only directive, 'Use synthetic or anonymised inputs only', is a data-handling constraint rather than usage guidance. An agent learns nothing about when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_safeguarding_reconciliationCASS 15 Safeguarding Reconciliation CheckC
Read-onlyIdempotent
Inspect

CASS 15 Safeguarding Reconciliation Check: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-499-check-safeguarding-reconciliation.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rulesetNo
verdictNo
currencyNo
citationsNo
rationaleNo
as_of_dateNo
componentsNo
component_countNo
rejected_inputsNo
within_toleranceNo
tolerance_displayNo
difference_displayNo
minor_unit_exponentNo
reconciliation_typeNo
difference_directionNo
tolerance_minor_unitsNo
difference_minor_unitsNo
subtotals_by_component_typeNo
safeguarding_resource_displayNo
safeguarding_requirement_displayNo
safeguarding_resource_minor_unitsNo
safeguarding_requirement_minor_unitsNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real behavior beyond that: deterministic server-side execution with a browser-delegation escape hatch, transient non-retained inputs, a 'synthetic or anonymised inputs only' constraint, and an AP2 artifact with execution_hash for provenance. That is meaningful disclosure an agent would not get from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool name is front-loaded, but a large share of the body is platform boilerplate (compute binding, transient processing) and an entire trailing sentence devoted to a URL and a 64-character FV-status hash. That provenance sentence costs length without helping an agent select or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return values need not be explained since an output schema exists, and the invocation mechanics are well covered. The gap is substantive: policy_parameters is a free-form object whose field names the schema defers to 'the tool's manifest,' so the actual decision-function inputs are undocumented here, leaving the tool's core computation opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, giving a baseline of 3. The description restates the compute-mode behavior (auto/server/browser, gpu:true delegation) but adds no syntax or format detail for the chaining or policy_parameters fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause is the title verbatim ('CASS 15 Safeguarding Reconciliation Check'), followed by category boilerplate ('OpenChainGraph compute node (compliance_mandate)', 'Deterministic OpenChainGraph compute node'). Nothing explains what the reconciliation actually checks, what a safeguarding break is, or how it differs from siblings like classify_safeguarding_method or build_safeguarding_audit_evidence. This is effectively a restated title plus infrastructure metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no routing to alternatives among the many check_*/reconcile_* siblings. The only selection-adjacent content is the compute-mode mechanics, which is invocation plumbing rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_sb53_frontier_scopeSB 53 Frontier Scope CheckerC
Read-onlyIdempotent
Inspect

SB 53 Frontier Scope Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-316-sb53-frontier-scope-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
compute_flopsNo
flop_thresholdNo
obligation_setNo
statute_citationNo
is_frontier_modelNo
is_large_frontier_developerNo
large_developer_revenue_threshold_usdNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent safety profile, and the description usefully adds context beyond them: transient processing with no storage or logging, the exact semantics of compute:'auto'/'browser' vs. forced browser delegation for gpu:true nodes, and the fact that an AP2 artifact with execution_hash is exported. The offline-verifiable FV-status receipt is a nice provenance detail. It stops short of describing the decision logic or export side effects in full, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Sentences are dense but front-loaded reasonably, with compute semantics stated early. However, a large share of the text is infrastructure boilerplate (kernel registration, Workers deployment, fv-status URL and hash) that does not help an agent select or invoke the tool, and the trailing receipt paragraph is low-value for selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter coverage, the remaining burden on the description is explaining the decision function and its inputs — and that is exactly what is missing. An agent learns the execution mechanics but not what SB 53 frontier scope means, what inputs the decision needs, or how to interpret the result, which is inadequate for a 4-parameter compliance tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented; the description largely echoes the compute-mode semantics found in the schema. Critically, it defers policy_parameters field names to 'the tool's manifest' rather than explaining them. Baseline 3 is appropriate when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('SB 53 Frontier Scope Checker') and then devotes nearly all its text to OpenChainGraph compute plumbing (server vs. browser delegation, kernels, provenance). It never states what the check actually decides — e.g. whether a given model or deployer falls within SB 53's frontier-model scope — so an agent cannot tell what the tool's output means relative to siblings like classify_* or assess_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is 'Use synthetic or anonymised inputs only,' which is an input-hygiene note rather than a when-to-use directive. There is no indication of when this scope check applies versus the many sibling conformity/scope checks, and no prerequisites or exclusions are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_screening_list_coverageScreening List-Coverage CheckerB
Read-onlyIdempotent
Inspect

Screening List-Coverage Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-90-sanctions-screening-fit-diagnostic, art-91-ownership-50pct-aggregator. Output feeds: art-97-sanctions-screening-quality-scorer, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-92-screening-list-coverage-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
nexus_gapsNo
coverage_pctNo
missing_listsNo
coverage_gradeNo
required_listsNo
refresh_adequateNo
reference_versionNo
ofsi_migration_noteNo
sectoral_lists_screenedNo
refresh_frequency_assessedNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, yet the description adds genuinely new operational facts: inputs are processed transiently and not stored/logged/retained, 'use synthetic or anonymised inputs only', and an AP2 artifact with execution_hash is exported for provenance. The compute auto/server/browser and browser-delegation semantics are useful, though largely duplicated in the schema's compute field description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool identity and organized, but bloated: the compute-mode paragraph duplicates the schema's compute description almost verbatim, and the closing FV-status sentence with a 64-hex receipt hash and 'snapshot, not a subscription' caveat does little to help tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations plus the compute/provenance notes cover the operational surface. The critical gap is the core semantics: what 'list coverage' means, what policy_parameters it accepts, and why an agent would pick it over run_sanctions_screening_fit or score_sanctions_screening_quality remains unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the 3 baseline applies; the schema already explains compute, parent_hashes, and parent_tool_ids. The description adds chaining context that maps onto parent_hashes/parent_tool_ids, but explicitly defers the real decision inputs to an external manifest ('See the tool's manifest for field names'), leaving policy_parameters opaque in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first two sentences essentially restate the title ('Screening List-Coverage Checker') and its node class ('OpenChainGraph compute node (compliance_mandate)') without explaining what a coverage check actually validates. The artifact lineage (art-90-sanctions-screening-fit-diagnostic upstream, art-97-sanctions-screening-quality-scorer downstream) does place it in the sanctions-screening domain, but the description never distinguishes its job from siblings like run_sanctions_screening_fit or score_sanctions_screening_quality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the description names upstream artifacts it consumes and downstream tools it feeds, which tells the agent where it sits in a chain. It gives no explicit when-to-use guidance, no exclusions, and no comparison against the several sibling screening tools. The compute-mode advice describes how to invoke, not when to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_securitization_risk_retentionSecuritization Risk Retention CheckC
Read-onlyIdempotent
Inspect

Securitization Risk Retention Check: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-447-securitization-risk-retention-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
compliantNo
jurisdictionNo
breach_reasonsNo
regulatory_basisNo
retention_methodNo
actual_retention_pctNo
retained_amount_musdNo
qrm_exemption_appliedNo
required_retention_pctNo
retention_method_validNo
retainer_is_sole_purpose_entityNo
total_securitized_exposure_musdNo
retained_interest_hedged_or_soldNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses material behavior: inputs are processed transiently and never stored or logged, compute:'browser' returns a delegation URL instead of a result, gpu:true nodes always delegate, and an AP2 artifact with execution_hash is exported for provenance. These are real operational traits an agent needs. It does not contradict any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose comes first, which is good, but the body is dominated by generic infrastructure boilerplate (compute binding, Workers, transient processing) repeated across every node in this family, plus a long FV-status URL. The content specific to risk retention is a single label; verbosity is spent on platform detail rather than the tool's actual function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. However, with a generic policy_parameters object and zero required parameters, an agent has no idea what inputs the decision function expects; the description points to 'the tool's manifest' rather than supplying the field names, leaving the core input contract incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute explanation duplicates the schema text almost verbatim and adds nothing new, and it defers the key policy_parameters field names to an external manifest. Baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the title ("Securitization Risk Retention Check") and labels itself a 'compute node (compliance_mandate)', a category, not a purpose. It never states what the check actually evaluates (e.g., 5% retention under US/EU securitisation rules) or what policy_parameters it consumes, and gives no differentiation from compliance-check siblings like check_conforming_loan_limit or check_qm_points_and_fees.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to invoke this tool versus alternatives. The only usage-flavored sentence is 'Use synthetic or anonymised inputs only', which is an input-hygiene rule, not selection criteria. The compute-mode discussion concerns how it executes, not when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_sod_matrixSegregation-of-Duties Matrix CheckerC
Read-onlyIdempotent
Inspect

Segregation-of-Duties Matrix Checker: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-459-sod-matrix-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cleanNo
conflictsNo
conflict_countNo
ruleset_versionNo
users_evaluatedNo
users_with_conflictsNo
conflict_rules_evaluatedNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description adds real behavioural context: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs only, client-side execution returns a browser delegation URL, and an AP2 artifact with execution_hash is exported for provenance. That is meaningful disclosure the annotations alone do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is organised into discrete sentences and front-loads the node classification, but a large share of the text is infrastructure boilerplate (Workers, FV-status hash URL, offline receipt) that does not help an agent select or invoke the tool. Several sentences do not earn their place relative to the size of the payload.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but the description is still not complete enough for a tool whose core input object (policy_parameters) is opaque and whose purpose is compliance-critical: it never explains what the SoD check evaluates or how to populate the decision-function fields. Critical task-level context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented structurally, and nesting/enums are covered there. The description adds nothing about policy_parameters field names, explicitly deferring to 'the tool's manifest', so it neither helps nor hurts beyond the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the title ('Segregation-of-Duties Matrix Checker') and labels it a 'compute node (compliance_control)' without saying what the check actually determines — which duties conflict, what a matrix input looks like, or what verdict comes back. It never distinguishes itself from near-neighbours like check_agency_eligibility_matrix or the other check_* compliance tools. An agent learns the classifier but not the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all. The only conditional language concerns compute mode ('auto' vs 'browser' vs 'server'), which is plumbing rather than task routing, and it is already fully documented in the schema. Nothing tells the agent when a SoD matrix check is the right tool versus a sibling compliance check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_ssi_conformanceSSI Conformance CheckerC
Read-onlyIdempotent
Inspect

SSI Conformance Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-77-t1-settlement-readiness-diagnostic. Output feeds: art-79-settlement-fail-predictor, art-84-settlement-efficiency-kpi. Open at: https://ainumbers.co/chaingraph/art-80-ssi-conformance-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
referenceNo
match_rateNo
clean_recordsNo
format_errorsNo
total_recordsNo
records_flaggedNo
incomplete_recordsNo
staleness_breachesNo
non_golden_source_countNo
staleness_threshold_daysNo
golden_source_coverage_pctNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, but the description adds real context beyond them: inputs are processed transiently and not stored or logged, compute:'auto' runs server-side for gpu:false nodes with a registered kernel while 'browser' returns a delegation URL, and it exports an AP2 artifact with an execution_hash. These are concrete operational traits an agent would not otherwise know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense paragraph of infrastructure boilerplate (OpenChainGraph compute node, Cloudflare Workers, FV-status receipt hash) that buries the one useful constraint. The open URL and the FV-status snapshot sentence consume space without helping selection or invocation, and the purpose is not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and the chaining/artifact context is covered. However, for a domain-conformance checker of this complexity the description omits the single most important fact — what SSI conformance means and what the check evaluates — leaving the agent unable to judge applicability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema, including the compute enum and parent_hashes/parent_tool_ids chaining. The description largely repeats the compute-mode semantics rather than adding new meaning, so the baseline 3 is correct. It adds nothing about policy_parameters field names beyond deferring to the manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads by restating the tool name ('SSI Conformance Checker: OpenChainGraph compute node') and then spends its length on compute plumbing, export artifacts and upstream/downstream wiring. It never states what SSI stands for or what conformance criteria are being checked, so an agent cannot tell what the tool actually evaluates. This is close to tautology on the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage directive is 'Use synthetic or anonymised inputs only', which is an input constraint rather than a when-to-use rule. The mention of consuming art-77 and feeding art-79/art-84 gives pipeline context, but there is no guidance on when this checker should be chosen over sibling conformance tools (check_gpai_code_conformance, check_fatca_crs_submission_conformance, etc.).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_tokenized_collateral_eligibilityTokenized Collateral Eligibility CheckerB
Read-onlyIdempotent
Inspect

Tokenized Collateral Eligibility Checker: OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: 506-onchain-cash-leg-finality-checker, 513-margin-call-collateral-mobilizer, 514-tokenized-fund-collateral-validator. Open at: https://ainumbers.co/tools/505-tokenized-collateral-eligibility-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hqla_tierNo
dtc_statusNo
mandate_typeNo
adjusted_valueNo
compliance_flagsNo
final_haircut_pctNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real behavioral context: deterministic execution, transient processing with no storage/logging/retention, synthetic-input advisory, and export of an AP2 artifact carrying execution_hash. The browser-delegation behavior for gpu:true nodes is also disclosed. It stops short of describing limits or failure modes, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Information is reasonably front-loaded, but the body is a dense run-on mixing compute binding, data-handling, provenance, downstream routing, an external URL, and a long FV-status receipt hash. Several clauses (full URL, snapshot disclaimer) are marginal for tool selection, so it is not tightly scoped.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and annotations plus the description cover safety, determinism, and chaining adequately. However, the description never characterizes the eligibility decision or the opaque policy_parameters, so the substantive semantics an agent needs to invoke this meaningfully are incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, giving a baseline of 3. The description echoes the compute:auto/browser semantics already in the schema and hand-waves policy_parameters to 'the tool's manifest' rather than adding field meaning. No meaningful semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence restates the title, and the remainder is dominated by compute-node mechanics rather than what the eligibility check actually evaluates. It does situate the tool in the 'collateral_mandate' domain and names the three downstream consumers (506/513/514), which gives partial context, but the core decision logic is never stated. An agent knows it is a deterministic collateral-mandate compute node, not what makes collateral eligible.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode routing (auto/server/browser) but never says when to choose this tool over siblings such as validate_collateral_swap_eligibility, compute_stock_token_collateral_haircut, or validate_fund_collateral. The 'Output feeds' list implies a pipeline position but gives no explicit when/when-not guidance or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_webbotauth_nonce_replayWeb Bot Auth Nonce & Replay-Window CheckerC
Read-onlyIdempotent
Inspect

Web Bot Auth Nonce & Replay-Window Checker: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-130-signature-directory-validator. Open at: https://ainumbers.co/chaingraph/art-593-webbotauth-nonce-replay-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
freshNo
verdictNo
format_okNo
spread_okNo
nonce_validNo
already_usedNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world. The description adds genuinely new behavior: compute:'auto'/'browser' semantics, browser delegation URLs for gpu:true nodes, transient non-retention of inputs, and an AP2 artifact with execution_hash for provenance. That is useful beyond the annotations, but nothing is said about the check's own behavior (nonce store, window bounds, what makes a result pass/fail).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description opens by duplicating the title, then repeats 'OpenChainGraph compute node' twice, and closes with a long FV-status snapshot sentence whose relevance to calling the tool is marginal. Platform boilerplate dominates over tool-specific content, and the useful details (compute modes) are buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, for a compliance-control check with nested policy_parameters and no required fields, the description never explains the actual decision function or what inputs it expects in policy_parameters beyond 'see the tool's manifest'. The core semantic gap is unfilled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes the compute-mode semantics and the chain.parent_hashes export side effect but adds no new syntax or field meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence restates the title verbatim ('Web Bot Auth Nonce & Replay-Window Checker') and the rest is platform boilerplate about OpenChainGraph compute nodes. It never says what the check actually does — e.g., that it detects nonce reuse within a replay window for Web Bot Auth signatures. An agent learns the node category (compliance_control) but not the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance relative to siblings like verify_webbotauth_signature or check_x402_domain_nonce_window. The only operative constraint is 'Use synthetic or anonymised inputs only', which is a data-handling rule, not invocation routing. 'Output feeds: art-130-signature-directory-validator' hints at a downstream step but not when to call this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_x402_domain_nonce_windowx402 Domain & Nonce Window CheckerC
Read-onlyIdempotent
Inspect

x402 Domain & Nonce Window Checker: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-592-x402-domain-nonce-window-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nonceNo
windowNo
reasonsNo
verdictNo
expectedNo
disclosureNo
signed_domainNo
nonce_well_formedNo
domain_chain_matchNo
nonce_already_usedNo
authorization_expiredNo
domain_contract_matchNo
authorization_not_yet_validNo
authorization_within_windowNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this read-only, idempotent, and non-destructive, but the description adds genuinely useful behavior beyond them: inputs are processed transiently and not stored/logged/retained, an AP2 artifact with an execution_hash is exported for chain provenance, and gpu:true nodes always delegate to the browser. These are real operational facts an agent could not infer from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense block dominated by infrastructure boilerplate, a documentation URL, and a long FV-status receipt hash that most agents cannot act on. The core purpose is not front-loaded and the signal-to-noise ratio is poor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the schema is fully covered. But for a compliance-control checker the description omits what decision the function reaches and under what domain/nonce-window conditions it should be called, leaving the agent without the semantic core.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including compute enums, parent_hashes/parent_tool_ids, and policy_parameters) are already documented in the schema. The description restates compute-mode semantics rather than adding new meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify a specific resource ('x402 domain & nonce window') and the description labels it a 'compliance_control' node, so the broad category is clear. However, the description never explains what the check actually verifies (e.g., replay/freshness of a nonce window) and spends its sentences on generic compute-node boilerplate, leaving it undifferentiated from siblings like check_webbotauth_nonce_replay.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative-tool guidance. The only directive is 'Use synthetic or anonymised inputs only,' which is a data-handling constraint rather than invocation context, and the compute-mode discussion is configuration, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

choose_cc_licenseCreative Commons License ChooserC
Read-onlyIdempotent
Inspect

Creative Commons License Chooser: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-195-creative-commons-license-chooser.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourceNo
spdx_idNo
disclaimerNo
license_idNo
license_urlNo
license_nameNo
required_elementsNo
attribution_requiredNo

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false. The description does add real behavioral context beyond that: transient processing with no storage/logging/retention, a synthetic-inputs-only constraint, and the AP2 artifact with execution_hash export. However, it says nothing about what the tool returns conceptually or how a license result is produced, so it is useful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by generic OpenChainGraph boilerplate and a trailing FV-status URL plus a 64-character hash receipt that no agent needs in order to invoke the tool. The genuinely tool-specific content (what license decision is made, what policy_parameters should contain) is absent while low-value material is front-loaded after the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a decision/computation tool with a free-form nested policy_parameters object and no required parameters; the description offloads the actual input field names to an external manifest and never describes what the chooser decides. Output schema and annotations cover return shape and safety, but the core decision semantics remain missing, which is a significant gap for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema, which sets the baseline at 3. The description only echoes the compute enum semantics already present in the schema and explicitly defers policy_parameters field names to 'the tool's manifest', adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the title ('Creative Commons License Chooser') and then labels it an OpenChainGraph compute node, without explaining what the tool actually decides or how a license is selected. An agent can infer the domain from the name but gets no differentiating detail against siblings like select_cbe_license, select_embedded_license, or check_license_compatibility.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative-selection guidance is given. The compute-mode discussion ('auto'/'server'/'browser') is execution mechanics, not usage guidance, and the description never says when choosing a CC license is the right call versus the other license-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_agentic_ai_riskAgentic AI Risk & GPAI Governance ClassifierC
Read-onlyIdempotent
Inspect

Agentic AI Risk & GPAI Governance Classifier: OpenChainGraph compute node (model_governance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-64-ai-act-highrisk-fit-diagnostic. Output feeds: art-04-agent-identity-attestation-checker, art-33-mcp-server-self-attestation-pack, art-62-ap2-payment-receipt-verifier. Open at: https://ainumbers.co/chaingraph/art-67-agentic-ai-risk-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
dim_scoresNo
gpai_classNo
overall_gradeNo
overall_scoreNo
recommendationNo
governance_tierNo
in_force_statusNo
highrisk_interactionNo
applicable_obligationsNo
autonomy_oversight_verdictNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds real behavioral context: transient processing with no storage/logging/retention, a synthetic-or-anonymised-inputs-only constraint, server-vs-browser delegation semantics, and an exported AP2 artifact with execution_hash, plus an offline-verifiable FV-status receipt. That is meaningful disclosure beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and dominated by infrastructure boilerplate, FV-status URL hashing, and artifact chaining metadata rather than being front-loaded with what the classifier does. Many sentences serve the platform narrative rather than helping an agent select or call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and the infra/chaining/behavioral details are thorough. However, for a governance classifier the description is silent on what the classification output means and defers policy_parameters field names to an external manifest, leaving a real gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds only marginal semantics (artifact chaining, execution_hash) and explicitly defers field-level policy_parameters detail to 'the tool's manifest', so the baseline 3 holds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title convey a specific verb+resource (classify agentic AI risk / GPAI governance), but the description body never explains what the classification actually decides or what inputs it produces risk determinations from. It leans on infra boilerplate ('OpenChainGraph compute node') rather than stating the tool's decision function, and it does not distinguish itself from near siblings like classify_ai_system_governance, check_gpai_code_conformance, or run_agentic_readiness_diagnostic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use/when-not guidance and no alternatives named among the many adjacent governance-classifier siblings. The chaining hints ('Consumes upstream artifacts from art-64...', 'Output feeds: ...') imply workflow position, but the agent is left to infer when this classifier is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_ai_system_governanceAI System Governance ClassifierC
Read-onlyIdempotent
Inspect

AI System Governance Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-172-ai-risk-impact-assessment-validator. Open at: https://ainumbers.co/chaingraph/art-173-ai-system-governance-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
use_caseNo
eu_ai_act_tierNo
gpai_obligationsNo
nist_rmf_profileNo
deployment_contextNo
iso42001_control_setNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds genuinely new operational context beyond them: compute-mode semantics (auto/server/browser, gpu delegation), transient non-retention of inputs, and an AP2 artifact export with execution_hash for chain provenance. It does not contradict the annotations and adds real behavioral value, though return-shape and failure behavior remain unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense run-on that front-loads internal infrastructure ('OpenChainGraph compute node', 'Cloudflare Workers', kernel registration) rather than the tool's purpose. It redundantly repeats the title ('Deterministic OpenChainGraph compute node') and pads with an external URL and a long FV-status hash that an agent does not need to select or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described, and annotations cover safety. However, for a compliance decision tool the description leaves the central question unanswered: what governance classification it renders, on what basis, and against which regime. One parameter (policy_parameters) is largely undefined here and deferred to a manifest, so an agent lacks enough to call it meaningfully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema; baseline 3 applies. The description restates the compute-mode behavior and hints at upstream artifact chaining, but adds no field names, formats, or semantics beyond the schema (policy_parameters fields explicitly deferred to an external manifest).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title state a verb+resource (classify AI system governance) but the description never explains what the classification actually produces or its categories/taxonomy; it is dominated by compute-node infrastructure. It does not differentiate from close siblings like run_ai_governance_fit, assess_ai_act_conformity, or classify_annex3_decisioning_obligations. Purpose is implied rather than specified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use versus alternative guidance, despite many adjacent governance/AI-Act tools in the sibling list. The only directive offered is 'Use synthetic or anonymised inputs only,' plus a noted upstream dependency (art-172-ai-risk-impact-assessment-validator), which is prerequisite context rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_annex3_decisioning_obligationsEU AI Act Annex III FS Decisioning Obligations ClassifierB
Read-onlyIdempotent
Inspect

EU AI Act Annex III FS Decisioning Obligations Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-64-ai-act-highrisk-fit-diagnostic. Open at: https://ainumbers.co/chaingraph/art-238-classify-annex3-decisioning-obligations.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
do_nowNo
obligationsNo
extends_noteNo
extends_toolNo
is_high_riskNo
fria_requiredNo
scope_verdictNo
table_versionNo
annex3_categoryNo
compliance_gapsNo
regulatory_basisNo
enforcement_datesNo
all_obligations_metNo
enforcement_readinessNo
art12_logging_requiredNo
is_5b_creditworthinessNo
db_registration_requiredNo
art26_deployer_duties_applyNo
is_5c_life_health_insuranceNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint:false and openWorldHint:false, so the safety profile is covered. The description goes meaningfully beyond that by disclosing compute-mode behavior (server vs browser delegation, gpu:true always delegating), that inputs are processed transiently and not stored or logged, that only synthetic/anonymised inputs should be used, and that an AP2 artifact with execution_hash is exported for provenance. This is real behavioral context the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose statement and the compute-mode/privacy material is genuinely relevant, but a large portion is generic boilerplate shared across OpenChainGraph nodes (compute-binding rehash, chain provenance, the 'Open at:' URL, and the long FV-status receipt paragraph) that does not help the agent decide or invoke. It is structured but noticeably padded for a classifier.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not explain return values, and annotations plus the compute/privacy text cover the invocation envelope. What is missing is domain completeness: the description never says what the classification produces or what inputs belong in policy_parameters, leaving the agent unable to determine the substantive decision logic despite knowing how to technically call the node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, establishing a baseline of 3. The description adds nothing about parameter semantics beyond what the schema states — notably, policy_parameters is opaque in the schema ('See the tool's manifest for field names') and the description does not name a single field to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence is essentially a verbatim restatement of the tool title, but the title itself contains a specific verb (classify), resource (obligations) and scope (EU AI Act Annex III FS decisioning), so the agent gets a rough sense of the task. However, beyond the title it never explains what an 'Annex III FS decisioning obligation' classification actually decides, and it does not distinguish itself from close siblings such as assess_ai_act_conformity, run_ai_act_highrisk_fit, or classify_agentic_ai_risk. The only added signal is the upstream artifact it consumes (art-64-ai-act-highrisk-fit-diagnostic).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance. The mention that it 'consumes upstream artifacts from art-64-ai-act-highrisk-fit-diagnostic' implies a chaining prerequisite but does not tell the agent under what circumstances to pick this tool over the many other AI-Act classifiers and readiness diagnostics in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_avax_permissioning_controlsEvergreen Permissioning-Control ClassifierC
Read-onlyIdempotent
Inspect

Evergreen Permissioning-Control Classifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-495-avax-permissioning-control-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
controlsNo
absent_countNo
gap_registerNo
judgment_requiredNo
controls_evaluatedNo
judgment_required_countNo
protocol_enforced_countNo
application_enforced_countNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses real behavioral traits: transient processing with no storage/logging/retention, server-side vs browser delegation semantics, deterministic execution, and an exported AP2 artifact carrying an execution_hash. It stops short of describing failures, rate limits, or what happens when the kernel is unregistered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The sizing is defensible for a compute node with provenance semantics, but 'OpenChainGraph compute node' / 'Deterministic OpenChainGraph compute node' is stated twice back-to-back, and the long URL plus FV-status hash string consume a large share of the text before any substantive purpose is conveyed. Core intent is not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the provenance/transient-processing details are useful. However, for a classifier whose entire value is the decision it renders, the description never says what is being classified or against which Avalanche permissioning rules, leaving the agent to infer the tool's substance from its name and an external manifest link.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented in the schema, which sets the baseline at 3. The description's compute-mode recital largely duplicates the schema's enum description and explicitly punts policy_parameters semantics to 'the tool's manifest,' adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence is essentially a restatement of the tool title ('Evergreen Permissioning-Control Classifier') plus a domain tag ('compliance_control'), and the second sentence repeats the compute-node framing. It never states what inputs are classified or what the classification output means, so an agent cannot distinguish this from the many other classify_* siblings beyond the 'avax permissioning' string in the name itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage directive is 'Use synthetic or anonymised inputs only,' which is an input constraint rather than when-to-use guidance. There is no statement of when this tool should be chosen over sibling classifiers (e.g. classify_nis2_entity, classify_agentic_ai_risk) or what conditions make it inapplicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_blockchain_quantum_riskBlockchain / Stablecoin Quantum-Risk ClassifierC
Read-onlyIdempotent
Inspect

Blockchain / Stablecoin Quantum-Risk Classifier: OpenChainGraph compute node (model_governance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-85-pqc-timeline-fit-diagnostic, 499-crypto-asset-inventory-classifier. Output feeds: cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-89-blockchain-quantum-risk-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
asset_typeNo
reuse_riskNo
exposed_pctNo
roadmap_refNo
bip360_statusNo
signature_schemeNo
address_reuse_pctNo
quantum_risk_tierNo
reference_versionNo
exposure_thresholdsNo
migration_readinessNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds real context: determinism, server-vs-browser delegation and gpu:true behavior, transient processing with no storage/logging, and an AP2 artifact with execution_hash. That is meaningful behavioral disclosure beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is padded with repeated boilerplate ('Deterministic OpenChainGraph compute node' restates the prior sentence), a raw URL, and a long FV-status hash string that do not help selection. The useful content is buried behind generic compute-node chrome rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists so return values need no explanation, the description omits the single most important thing for selection: what quantum-risk classification this node performs and on what inputs. For a 4-parameter decision node in a dense sibling set, this leaves an agent unable to judge fit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema fully documents all four parameters including compute mode, parent_hashes, and parent_tool_ids. The description's compute-mode explanation merely repeats the schema's enum description and adds no format or ordering detail the schema lacks. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the tool name/title ('Blockchain / Stablecoin Quantum-Risk Classifier: OpenChainGraph compute node') without saying what the classification actually decides — no criteria, categories, or outputs. It never distinguishes itself from PQC-adjacent siblings like check_iso20022_pqc_readiness or compute_pqc_deadline_ladder. An agent cannot infer the decision logic from the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no alternative named. The upstream/downstream artifact references (art-85-pqc-timeline-fit-diagnostic, 499-crypto-asset-inventory-classifier, cry-04-merkle-batch-verifier) hint at a pipeline but do not tell the agent which condition selects this tool. Usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_bold_challenge_finalityBoLD Challenge-Window Finality ClassifierC
Read-onlyIdempotent
Inspect

BoLD Challenge-Window Finality Classifier: OpenChainGraph compute node (settlement_finality_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-59-settlement-asset-finality-classifier. Open at: https://ainumbers.co/chaingraph/art-321-rhc-bold-finality-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
claim_verdictNo
finality_claimNo
finality_classNo
earliest_final_atNo
challenge_window_secondsNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, idempotent read (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lower, and the description adds real value on top: compute mode semantics, the guarantee that inputs are processed transiently and not stored or logged, deterministic execution, and the AP2 execution_hash provenance export. It stops short of describing output shape or failure behavior, but the transparency beyond annotations is substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense metadata dump: title restatement, compute-binding boilerplate, retention disclaimer, artifact note, control-token link, and an FV-status URL with a caveat about snapshots. It is not front-loaded around the tool's actual decision, and several sentences (the FV-status receipt explanation) serve provenance bookkeeping rather than tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deterministic node with an opaque policy_parameters object, a nested schema and a sparse set of required fields, the description leaves the core gap unfilled: what the decision function consumes and returns is deferred to 'the tool's manifest'. It does cover execution, privacy and provenance, but an agent cannot confidently populate policy_parameters or interpret the classification from this definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's account of compute modes (auto/server/browser, gpu:true always delegating) largely duplicates the compute parameter's own schema description. parent_hashes, parent_tool_ids and policy_parameters get no added meaning beyond the pipeline remark and the instruction to consult the manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the tool title verbatim, then spends its length on compute-runtime and provenance metadata rather than stating what the classification actually decides. Nothing distinguishes it from close siblings such as classify_settlement_finality, classify_settlement_asset_finality, classify_ledger_consensus_finality or check_linea_l2_finality_window. An agent learns that it is a 'BoLD challenge-window finality classifier' but not what a BoLD challenge-window finality classification contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to choose this tool over the near-identical finality siblings. The only routing hint is the pipeline note that it consumes artifacts from art-59-settlement-asset-finality-classifier, which implies ordering but does not tell the agent when this classifier applies. No prerequisites, exclusions, or alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_carf_reportableCARF / DAC8 Reportable User ClassifierC
Read-onlyIdempotent
Inspect

CARF / DAC8 Reportable User Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-505-dispose-carf-status-message. Open at: https://ainumbers.co/chaingraph/art-504-classify-carf-reportable.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
user_countsNo
record_countNo
schema_versionNo
record_verdictsNo
reporting_periodNo
judgment_requiredNo
suppressed_rule_codesNo
suppressed_step_countNo
reporting_jurisdictionNo
unsatisfied_step_countNo
judgment_required_countNo
transaction_counts_by_classNo
reportable_transaction_classesNo
reportable_residence_jurisdictionsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful non-annotation behavior: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs only, server-vs-browser computation with a delegation URL, and export of an AP2 artifact with an execution_hash for provenance. What is missing is the nature of the classification decision itself, which limits it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entry is a dense boilerplate run-on: compute-node platform text, a transient-processing disclaimer, an artifact export note, a downstream-feed pointer, and a raw FV-status URL with a 64-character hash. The information an agent needs for selection is not front-loaded — the functional purpose never appears, while low-value receipt/verification detail occupies the tail. Sentences largely repeat platform metadata rather than earning space for this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description does cover compute semantics, data-handling constraints and provenance export. However, for a compliance classifier the core decision logic — what makes a user reportable, and what policy_parameters fields the kernel expects — is absent and deferred to an external manifest. Adequate on infrastructure, thin on the compliance semantics that distinguish this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented in the schema. The description's explanation of compute modes largely duplicates the schema's own enum description rather than adding syntax or format meaning beyond it. With the schema doing the heavy lifting, baseline 3 applies; note that policy_parameters' field names are explicitly deferred to an external manifest, which is a gap but one the schema also punts on.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause restates the name/title verbatim ('CARF / DAC8 Reportable User Classifier: OpenChainGraph compute node') and adds no independent explanation of what gets classified or on what basis. The only purpose-adjacent signal is the downstream pointer ('Output feeds: art-505-dispose-carf-status-message'), but the actual decision ('is this user reportable under CARF/DAC8') is never articulated. The domain is inferable from the name, but the description itself is closer to tautology-plus-infrastructure than a stated purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative-selection guidance at all — nothing routes the agent between this and the many sibling classify_* and assess_* tools. The only conditional content concerns compute mode, which is an invocation detail, not a usage criterion. An agent learns the mechanics of running the node but not why it should choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_codm_expense_significanceCODM Significant Expense ClassifierC
Read-onlyIdempotent
Inspect

CODM Significant Expense Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-634-codm-expense-significance-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
basisNo
citationNo
bucket_c_scope_noteNo
assessed_significantNo
specified_item_50_22No
evaluated_under_50_26ANo
regularly_provided_to_codmNo
other_segment_items_bucketsNo
input_outside_declared_domainNo
must_disclose_separately_50_26ANo
included_in_segment_profit_measureNo
separate_disclosure_required_50_22No
folds_into_other_segment_items_50_26BNo
outside_significant_expense_principleNo
segment_level_duties_not_decided_hereNo
easily_computable_from_codm_informationNo

TDQS

C2.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description adds real behavioral facts: inputs are processed transiently and not stored/logged/retained, synthetic inputs are required, and the tool 'Exports an AP2 artifact with execution_hash for chain provenance', plus the browser-delegation fallback for gpu:true nodes. These are non-obvious traits an agent could not infer from annotations, though some compute-mode text duplicates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is padded with boilerplate: the title is repeated, 'compute node' is asserted twice, compute-mode rules restate the schema, and it ends with a URL plus a 64-hex FV-status receipt reference. The most important content (what is being classified) never appears, so the front-loading is wasted on naming rather than substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, but the description omits the core domain semantics of a compliance classifier: what qualifies as a significant CODM expense, what the decision function evaluates, and what the AP2 artifact attests. For a nested-input, chained-artifact compliance node this is materially under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters, and the description merely echoes the compute enum semantics. It adds nothing for parent_hashes/parent_tool_ids and does not clarify what fields the opaque policy_parameters decision function expects (schema defers to 'the tool's manifest'). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the title ('CODM Significant Expense Classifier') and labels itself a 'compute node (compliance_mandate)'. It never states what a CODM significant-expense classification actually decides (e.g. IFRS 8 / ASC 280 significance thresholding), so an agent cannot distinguish it from the many other classify_* siblings beyond the title string.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative routing is given. The only directive is an input constraint ('Use synthetic or anonymised inputs only'), which is a validation rule, not usage guidance against siblings like classify_ifrs17_measurement_model or test_asc280_reportable_segment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_digital_asset_regulatoryDigital Asset Regulatory ClassifierC
Read-onlyIdempotent
Inspect

Digital Asset Regulatory Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: 512-tokenized-security-lifecycle-validator. Open at: https://ainumbers.co/tools/510-digital-asset-regulatory-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
compliance_flagsNo
classification_resultsNo
iso20022_party_identificationNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/non-destructive, but the description adds real behavioral context: inputs are processed transiently and not stored or logged, gpu:true nodes always delegate to the browser, and it exports an AP2 artifact with execution_hash for chain provenance. That is meaningful disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is moderately long and front-loads infrastructure plumbing (Workers, kernels, delegation) rather than the tool's purpose. The URL and FV-status receipt hash add length without helping an agent decide to call or how to invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the chaining/provenance story is covered. However, for a classifier whose policy_parameters is an open object, the description leaves the agent with no idea what decision inputs to supply, which is a notable gap for a decision tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes the compute-mode semantics but adds nothing about policy_parameters beyond deferring to 'the tool's manifest for field names,' so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the name and title ('Digital Asset Regulatory Classifier: OpenChainGraph compute node (compliance_mandate)') without stating what classification it actually produces or what regulatory regime it decides. It never explains the verb+resource outcome, so an agent cannot distinguish it from the dozens of sibling classify_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is the compute-mode behavior (auto/server/browser) and 'Use synthetic or anonymised inputs only.' There is no statement of when to select this classifier versus alternatives such as assess_mica_casp_readiness or classify_* siblings, nor any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_dora_ict_incident_and_clock_deadlinesDORA ICT Incident Classifier & Reporting ClockC
Read-onlyIdempotent
Inspect

DORA ICT Incident Classifier & Reporting Clock: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-467-dora-incident-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
verdictNo
incident_idNo
table_sourceNo
table_versionNo
major_incidentNo
criteria_detailNo
reporting_clockNo
qualifying_criteriaNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, destructive=false, so the safety profile is covered. The description adds genuinely useful behavior: inputs are processed transiently and not stored/logged, compute can be forced server-side or delegated to a browser URL, and an AP2 artifact with execution_hash is exported. However it says nothing about what the classifier returns behaviorally (e.g., deadline outputs) when a computation fails or how browser delegation resolves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded and moderate in length, but a large fraction is reusable ChainGraph boilerplate (compute binding, non-retention, AP2 export) shared across sibling nodes, plus an opaque FV-status hash string. That boilerplate crowds out the tool-specific content an agent most needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return format is not required in prose, but the tool's actual decision logic is entirely absent and policy_parameters is an unconstrained object whose fields are only in an external manifest. For a regulatory classification + deadline-clock tool with 4 params and nested objects, an agent cannot call it correctly without knowing the expected policy_parameters keys, and the description does not supply them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute/parent_hashes/parent_tool_ids descriptions are already fully documented. The description adds no field-level meaning, and crucially does not disclose the field names inside policy_parameters (the schema defers to 'the tool's manifest'), so it fails to compensate for the one real semantic gap. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence is the title restated verbatim ('DORA ICT Incident Classifier & Reporting Clock'), and the remainder is infrastructure boilerplate about compute binding and artifact export. It never says what the tool actually classifies (which DORA incident categories, thresholds, or deadline logic), so an agent learns nothing about the resource beyond the name. This is close to tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no differentiation from the sibling 'classify_dora_incident' or 'run_dora_readiness_diagnostic'. The only usage-like instruction is a data-handling constraint ('Use synthetic or anonymised inputs only'), which is not a selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_dora_incidentDORA Major-Incident Reporting Threshold ClassifierB
Read-onlyIdempotent
Inspect

DORA Major-Incident Reporting Threshold Classifier: OpenChainGraph compute node (infrastructure_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-29-dora-readiness-diagnostic. Output feeds: pnr-01-dora-ict-cascade-simulator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-09-dora-incident-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
entity_typeNo
cross_borderNo
incident_typeNo
major_incidentNo
reporting_clockNo
third_party_ictNo
determination_codeNo
qualifying_criteriaNo
regulatory_frameworkNo
competent_authority_noteNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real operational context beyond them: deterministic server-side vs forced browser execution, gpu:true always delegating, transient non-retained input processing, the 'synthetic or anonymised inputs only' constraint, and AP2 artifact emission with execution_hash provenance. Those are behavioral facts an agent cannot get from the annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens with a title echo and then buries the reader in infrastructure boilerplate (compute binding, Cloudflare Workers, FV-status receipt JSON) before any statement of what the classifier decides. Several sentences duplicate the schema's compute description, and the one URL plus the long /fv-status hash bloat the text without helping tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and annotations plus schema cover safety and parameters. What is missing is precisely the core: the threshold logic the classifier applies and the expected shape of policy_parameters, which the description punts to an external manifest. For a decision-function tool, that leaves the agent unable to know what to pass or what the verdict means.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute-mode semantics described in prose are already fully documented in the schema's compute field. For policy_parameters the description defers entirely to 'See the tool's manifest', adding no field-level meaning. With the schema doing all the work, baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names the resource (DORA major-incident reporting thresholds) and the description states it is a 'compute node' that consumes art-29-dora-readiness-diagnostic and feeds the ICT cascade simulator, so its position in a chain is inferable. But the description itself never says what the classification actually decides (which thresholds, what verdict it emits), and it never distinguishes itself from the very close sibling classify_dora_ict_incident_and_clock_deadlines. Purpose rests largely on the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Upstream/downstream wiring ('Consumes upstream artifacts from... Output feeds...') implicitly tells the agent where in a pipeline to call it and gives partial routing guidance. However, there is no explicit when-to-use, when-not-to-use, or alternative-tool guidance, and nothing reconciles it against classify_dora_ict_incident_and_clock_deadlines or run_dora_readiness_diagnostic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_eccn_dual_useECCN / Dual-Use ClassifierB
Read-onlyIdempotent
Inspect

ECCN / Dual-Use Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-90-sanctions-screening-fit-diagnostic. Output feeds: art-95-circumvention-diligence-assessor, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-94-eccn-dual-use-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eccnNo
noteNo
key_datesNo
red_flagsNo
licence_requiredNo
reference_versionNo
controlling_regimeNo
emerging_tech_noteNo
eu_annex_i_categoryNo
classification_basisNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the annotations: transient processing with no storage/logging/retention, server-vs-browser execution semantics, gpu:true always delegating, and an AP2 artifact export carrying execution_hash. The readOnly/idempotent annotations are consistent with this. It stops short of stating auth requirements or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is a tautological restatement of the title plus node plumbing, and the tail is dominated by provenance URLs, an FV-status hash path, and chain-graph receipt language that does not help an agent decide to call the tool. The purpose-relevant content (input hygiene, pipeline position) is buried in the middle.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It correctly does not re-explain return values since an output schema exists, and it covers execution-model behavior. However, for a compliance classifier with a free-form policy_parameters object it never indicates what decision inputs are expected, leaving a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The compute-mode discussion in the description duplicates the schema's own 'compute' description, and policy_parameters field names are deferred to an external manifest, adding no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title identify a verb+resource ('ECCN / Dual-Use Classifier'), but the description body only restates that plus OpenChainGraph node metadata ('compute node (compliance_mandate)') without explaining what is being classified, under which regime, or what the output classification means. Among hundreds of 'classify_*' siblings, nothing distinguishes this one beyond the title itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a real usage constraint ('Use synthetic or anonymised inputs only') and states pipeline position (consumes from art-90-sanctions-screening-fit-diagnostic, feeds art-95-circumvention-diligence-assessor), which implies when to invoke it. It never says when NOT to use it or names an alternative classifier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_emir3_active_account_statusEMIR 3.0 Active Account Representativeness ClassifierC
Read-onlyIdempotent
Inspect

EMIR 3.0 Active Account Representativeness Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-576-emir3-active-account-representativeness-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
fenceNo
in_scopeNo
citationsNo
rationaleNo
as_of_dateNo
not_provenNo
obligationsNo
bucket_countsNo
rejected_inputsNo
counterparty_refNo
trades_classifiedNo
subcategory_designationsNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, yet the description adds genuinely useful behavior: default server-side compute vs. 'browser' delegation for gpu nodes, transient processing with no storage/logging, and an exported AP2 artifact carrying execution_hash for chain provenance. It stops short of describing determinism guarantees or failure behavior of the classification itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-paragraph block front-loads infrastructure boilerplate over the tool's actual function, and spends its closing sentences on an external URL and a long literal FV-status hash path — content with little selection value for an agent. Substantive domain semantics are absent while low-value metadata dominates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but the description leaves the domain gap unfilled: policy_parameters is an opaque free-form object and the description offers no hint of the decision function, required fields, or expected input shape. For a regulatory classification node with zero required parameters, the description is not complete enough to invoke confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, including the enum semantics for compute. The description largely repeats the compute-mode explanation and adds nothing about the meaning of policy_parameters, deferring to 'the tool's manifest' for field names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence is essentially a restatement of the tool name and title ('EMIR 3.0 Active Account Representativeness Classifier: OpenChainGraph compute node'), plus a generic infrastructure label. It never states in plain terms what decision the classifier produces (e.g. whether an active-account representativeness threshold is met under EMIR 3.0) or what inputs drive it. Without the name an agent could not distinguish it from run_emir_reporting_fit or classify_emir3_simm_approval_scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no routing to alternatives among the many EMIR/classify siblings. The only prescriptive line ('Use synthetic or anonymised inputs only') is an input-handling constraint, not guidance on when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_emir3_simm_approval_scopeEMIR 3 SIMM Approval-Scope ClassifierC
Read-onlyIdempotent
Inspect

EMIR 3 SIMM Approval-Scope Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-581-emir3-simm-approval-scope-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_of_dateNo
model_typeNo
obligationsNo
model_statusNo
isda_endorsementNo
counterparty_typeNo
subject_to_bilateral_imNo
methodology_verificationNo
competent_authority_declaredNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world, so the bar is lower; the description nonetheless adds real behaviour: transient processing with no storage/logging/retention, a confidentiality warning to use synthetic or anonymised inputs, AP2 artifact export with execution_hash, and the server-vs-browser delegation rule. That is substantive context beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded but overloaded: the compute-mode rules are repeated almost verbatim from the schema, and the trailing URL plus FV-status receipt hash consume significant space without helping an agent select or call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and compute semantics are covered. However, for a 4-parameter decision tool whose key input (policy_parameters) is an opaque object, the description never says what is being classified, what the decision output asserts, or how to populate policy_parameters beyond pointing at a manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description only echoes the compute-mode semantics and defers policy_parameters fields to 'the tool's manifest', adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence is essentially the title plus a generic node-type tag ('OpenChainGraph compute node (compliance_mandate)'), and the rest of the text is infrastructure boilerplate. Nothing explains what an 'EMIR 3 SIMM approval scope' classification actually decides, and no sibling (e.g. classify_emir3_active_account_status) is distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only conditional guidance is about compute mode (auto/server/browser, gpu:true delegation), which is execution plumbing rather than when to pick this classifier over neighbouring EMIR/classify tools. There is no statement of prerequisites, inputs to supply, or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_erc1967_proxy_slotERC-1967 Proxy Slot ClassifierC
Read-onlyIdempotent
Inspect

ERC-1967 Proxy Slot Classifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-607-erc1967-proxy-slot-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
findingsNo
not_provenNo
scope_noteNo
matched_roleNo
declared_slotNo
storage_valueNo
embedded_addressNo
known_eip1967_slotsNo
overall_determinationNo
classification_summaryNo
embedded_address_checksummedNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new behavioral facts: deterministic execution, server-side vs browser delegation for gpu:false vs gpu:true nodes, transient processing with no storage or logging, synthetic-inputs-only constraint, and an AP2 artifact with execution_hash. The remaining text is generic family boilerplate, but the execution-model disclosure exceeds annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional purpose is buried behind eleven sentences of infrastructure boilerplate, a URL, and a 64-character FV-status hash path that no agent needs to invoke the tool. Front-loading is poor: the actual classifier behavior never appears at all.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a domain-specific classifier with a nested free-form policy_parameters object and zero required parameters, the description gives no domain context on what slots are recognized or what the classification output means. It defers entirely to 'the tool's manifest' rather than completing the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode sentence restates the schema and adds no syntax, ordering, or format detail beyond it, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The only functional statement is the title restated: 'ERC-1967 Proxy Slot Classifier: OpenChainGraph compute node (compliance_control).' It never says what classifying a proxy slot means (e.g., matching the EIP-1967 implementation/admin/beacon storage slots), so the description is effectively a tautology over the name. Nothing distinguishes it from the dozens of sibling classify_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative-tool guidance anywhere. The only 'how' content is the compute-mode routing, which is an execution detail rather than a selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_eudr_commodity_scopeEUDR Commodity Scope ClassifierC
Read-onlyIdempotent
Inspect

EUDR Commodity Scope Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-166-eudr-geolocation-plot-validator. Open at: https://ainumbers.co/chaingraph/art-167-eudr-commodity-scope-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
is_smeNo
deadlineNo
in_scopeNo
is_microNo
commodityNo
entity_roleNo
hs4_matchedNo
obligationsNo
dds_filing_requiredNo
due_diligence_requiredNo
geo_exemption_eligibleNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read/idempotent/non-destructive semantics, yet the description adds genuinely useful behavior: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs only, server-vs-browser compute routing with delegation URL, and an AP2 artifact with execution_hash is exported for provenance. That is real disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens with category/implementation boilerplate rather than the tool's purpose, and the trailing FV-status URL plus long hash is low-value for an agent deciding whether to call it. The compute-mode sentence duplicates the schema verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, but for a classification tool the description omits the classification target, criteria, and expected inputs entirely, leaving the core decision behavior undisclosed despite an otherwise rich schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description re-explains the compute enum (already fully documented in the schema) but says nothing extra about parent_hashes, parent_tool_ids pairing, or policy_parameters beyond deferring to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mostly restates the name ('EUDR Commodity Scope Classifier: OpenChainGraph compute node (compliance_mandate)') and spends its words on infrastructure mechanics rather than stating what is classified or against which criteria (e.g., the seven EUDR commodity categories). It never distinguishes itself from close siblings such as score_eudr_country_risk, validate_eudr_geolocation, or run_eudr_readiness_fit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no exclusions, and no comparison to alternatives. The single useful hint is 'Consumes upstream artifacts from: art-166-eudr-geolocation-plot-validator', which implies pipeline ordering but is not framed as a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_ifrs17_measurement_modelIFRS 17 Measurement Model ClassifierB
Read-onlyIdempotent
Inspect

IFRS 17 Measurement Model Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-178-ifrs17-csm-rollforward-validator. Open at: https://ainumbers.co/chaingraph/art-177-ifrs17-measurement-model-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
paa_eligibleNo
vfa_eligibleNo
is_reinsuranceNo
eligible_modelsNo
measurement_modelNo
direct_participatingNo
coverage_period_monthsNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/not-openWorld, so the bar is low, yet the description still adds real behavior: deterministic compute, transient non-retained processing, 'synthetic or anonymised inputs only', the compute auto/server/browser defaulting and browser-delegation fallback, and an exported AP2 artifact with execution_hash. That is meaningful context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, and the remaining sentences carry distinct payloads (compute modes, privacy, artifact export, downstream consumer, verification receipt). Despite its length, each sentence has a purpose, and the terminal FV-status sentence, while verbose, is explicitly framed as an offline-verifiable snapshot.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering the safety profile and an output schema present, the description need not explain return values. It nonetheless covers execution provenance (execution_hash, AP2 artifact), chaining (parent_hashes), privacy constraints, and the downstream consumer, leaving no obvious gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode semantics and the server-side computation of policy_parameters, adding marginal value but no syntax, ordering, or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name gives a specific verb+resource ('IFRS 17 Measurement Model Classifier'), but the description body spends almost all of its words on OpenChainGraph compute plumbing rather than stating what the classification does (e.g., grading between GMM/PAA/VFA). An agent can identify the domain but not the actual decision output without inferring from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no naming of alternatives. The only routing cue is that output feeds 'art-178-ifrs17-csm-rollforward-validator', which hints at chain position but is not an invocation guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_ledger_consensus_finalityLedger Consensus Finality ClassifierC
Read-onlyIdempotent
Inspect

Ledger Consensus Finality Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-527-classify-ledger-consensus-finality.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
outcomeNo
as_of_tsNo
rationaleNo
chain_labelNo
claimed_tierNo
draft_pinnedNo
result_classNo
claim_verdictNo
finality_tierNo
required_tierNo
reorg_exposureNo
time_bounds_maxNo
settlement_modelNo
included_in_ledgerNo
meets_required_tierNo
submitted_at_ledgerNo
highest_validated_ledgerNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotent/destructive=false already declared via annotations, the description still adds real behavioral context: server- vs client-side execution semantics (compute:"auto"/"server"/"browser", gpu:true delegation), transient processing with no storage/logging/retention, and the export of an AP2 artifact with execution_hash for provenance. These are genuinely useful traits beyond the annotations, though they are generic to all OpenChainGraph nodes rather than specific to this classifier.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is verbose and poorly front-loaded: it opens with a near-duplicated sentence about being a deterministic compute node, then piles on runtime, privacy, artifact, URL and FV-status-hash boilerplate before any functional explanation. Large portions (URL, snapshot receipt, hash) do not earn their place for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a decision-function node whose real work lives in policy_parameters, the description never describes the classification logic, expected inputs, or any finality criteria. Output schema and annotations cover returns and safety, but the core 'what does it classify and on what basis' is missing, leaving the tool under-specified relative to its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters fully. The description only restates compute-mode behavior that is already in the schema and adds no extra meaning for the remaining parameters. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title ('Ledger Consensus Finality Classifier') conveys a verb and resource, but the description never actually explains what consensus-finality classification means, what it operates on, or what it returns. The body text is dominated by runtime boilerplate ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') which largely restates the title. It does nothing to distinguish this tool from close siblings such as classify_settlement_finality or classify_bold_challenge_finality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no routing to alternatives, despite a dense sibling set of finality-classification tools. The only operative instructions concern compute mode and a privacy caution ('Use synthetic or anonymised inputs only'), not when to select this tool over its siblings. Selection is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_mla_charge_inclusionMLA Charge-Inclusion ClassifierC
Read-onlyIdempotent
Inspect

MLA Charge-Inclusion Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-615-mla-charge-inclusion-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
basisNo
citationNo
charge_typeNo
included_in_maprNo
manual_review_reasonNo
conditional_limit_usdNo
is_credit_card_accountNo
manual_review_requiredNo
short_term_exception_claimedNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already covering read-only, idempotent, non-destructive, closed-world safety, the description still adds real behavioral context: compute routing semantics ('auto' server vs 'browser' delegation URL), the fact that inputs are processed transiently and never stored/logged, and that an AP2 artifact with execution_hash is exported for provenance. These are non-obvious traits an agent could not infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure boilerplate (repeated 'Deterministic OpenChainGraph compute node', Cloudflare Workers, FV-status hash URL) while the actual purpose is never front-loaded. Substantial content could be removed or moved to external docs without losing selection signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, but for a 4-parameter tool with a nested policy_parameters object, the description defers the operative inputs to an external manifest and never states what the classification decides. An agent lacks enough to invoke it meaningfully beyond a generic call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute modes but adds nothing on the actual decision inputs, explicitly punting to 'the tool's manifest for field names'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool an 'OpenChainGraph compute node (compliance_mandate)' and repeats itself, but never explains what MLA charge-inclusion classification actually does or what decision it produces. The verb/resource comes only from the name; an agent cannot tell how this differs from the sibling compute_mla_mapr or recompute_mla_mapr_actuarial from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a single input constraint ('Use synthetic or anonymised inputs only') but no guidance on when to select this tool versus the many MLA/compliance siblings. No preconditions, no scenario framing, no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_nis2_entityNIS2 Entity Scope Classifier (Essential / Important / Out-of-Scope)B
Read-onlyIdempotent
Inspect

NIS2 Entity Scope Classifier (Essential / Important / Out-of-Scope): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-142-nis2-art21-gap-checker. Open at: https://ainumbers.co/chaingraph/art-141-nis2-entity-scope-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
annexNo
sector_codeNo
employee_countNo
annual_turnover_eurNo
automatic_essentialNo
applicable_penaltiesNo
classification_basisNo
entity_classificationNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent/non-destructive profile, but the description adds genuine behavioral context beyond them: deterministic execution, server vs browser delegation via compute mode, transient processing with no storage/logging/retention, and emission of an AP2 artifact with execution_hash for chain provenance. This is meaningful operational disclosure that annotations don't provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operative purpose is front-loaded via the title, but the body is heavy with infrastructure boilerplate (Cloudflare Workers, GPU flags, a long FV-status hash URL) that dilutes the signal. Sentences earn partial value but the FV-status receipt string and worker details are largely noise for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described. However, for a classification tool the description never explains what the classification consumes or produces (deferring to an external manifest), leaving policy_parameters opaque. Execution and provenance semantics are covered, but decision-relevant input semantics are not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds no field-level detail and explicitly defers policy_parameters field names to 'the tool's manifest', so it does not compensate further. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title states a clear verb+resource (classify NIS2 entity scope into Essential/Important/Out-of-Scope), but the description body itself barely restates this, instead focusing on OpenChainGraph compute mechanics and calling it a 'compliance_mandate compute node'. It does not distinguish itself from close siblings like check_nis2_art21_measures, check_nis2_governance_readiness, or score_nis2_incident_significance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many other NIS2 tools in the sibling list. The only directive is the safety constraint 'Use synthetic or anonymised inputs only', which is a usage restriction, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_qm_apr_apor_spreadQM APR-APOR Spread ClassifierB
Read-onlyIdempotent
Inspect

QM APR-APOR Spread Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-218-qm-points-and-fees. Open at: https://ainumbers.co/chaingraph/art-219-qm-apr-apor-spread.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
yearNo
apr_pctNo
is_hpctNo
apor_pctNo
lien_typeNo
qm_statusNo
spread_pctNo
fr_citationNo
loan_amountNo
headroom_pctNo
general_qm_passNo
threshold_basisNo
regulatory_basisNo
hpct_threshold_pctNo
is_manufactured_housingNo
applicable_threshold_pctNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive/closed-world, but the description adds genuinely new behavioral facts: transient processing with no storage or logging, the server-vs-browser delegation model, and the exported AP2 artifact carrying execution_hash for chain provenance. That is meaningful disclosure beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the body is a dense run-on that mixes compute binding, retention policy, artifact export, upstream dependencies and a raw FV-status URL plus a 64-hex hash — the latter is noise that crowds out actual tool semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shapes need not be described, and the provenance/delegation mechanics are covered. However, for a classification tool the description never explains the decision function or the classes assigned, leaving a substantive gap relative to the tool's apparent complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the description's treatment of 'compute' largely restates the schema property text verbatim. With no parameter-external semantics of note (policy_parameters are simply deferred to 'the manifest'), the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title give a verb ('classify') and a resource ('QM APR-APOR spread'), but the description body never explains what the classification actually determines or what outputs it produces — it is dominated by node-infrastructure boilerplate. An agent cannot tell from the text how this differs from siblings like check_qm_points_and_fees or compute_reg_z_appendix_j_apr beyond the resource noun.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is some usable routing context ('Consumes upstream artifacts from: art-218-qm-points-and-fees') and a constraint ('Use synthetic or anonymised inputs only'), but no explicit when-to-use/when-not or alternative selection guidance versus the many sibling classifiers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_rate_rec_5pct_thresholdRate Reconciliation 5% Threshold ClassifierC
Read-onlyIdempotent
Inspect

Rate Reconciliation 5% Threshold Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-635-rate-rec-5pct-threshold-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
basisNo
citationNo
pretax_incomeNo
threshold_amountNo
statutory_rate_pctNo
category_recognizedNo
not_assessable_reasonNo
pct_of_threshold_baseNo
threshold_base_amountNo
crosses_5pct_thresholdNo
disaggregation_citationNo
reconciling_item_amountNo
required_disaggregationNo
break_even_judgment_noteNo
must_disclose_separatelyNo
reconciling_item_categoryNo
denominator_near_zero_caveatNo
management_judgment_requiredNo
entity_is_public_business_entityNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower. The description goes further by disclosing compute-mode semantics, that inputs are processed transiently and not stored or logged, and that it exports an AP2 artifact with an execution_hash plus an offline-verifiable FV-status receipt. These are genuine behavioral traits beyond the annotations, though nothing about the classification logic itself is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with a redundant title echo and platform boilerplate before anything useful, and it ends with a long URL and a full 64-character hash that consume space without helping selection. Much of the content reads as template text shared across sibling tools rather than description specific to this tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but for a compute/classifier node with a nested policy_parameters object the description should convey what the decision function does and which fields matter. It instead points vaguely to 'the tool's manifest' and omits the core classification semantics entirely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description's mention of compute:'auto'/'browser' merely duplicates the schema's own enum description and adds no new meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads by restating the title and then describes platform infrastructure ('OpenChainGraph compute node', compute modes, artifact export) rather than what the classifier actually decides. It never explains what a '5% threshold rate reconciliation' classification is or what distinguishes it from sibling classify_* tools. An agent cannot tell what this tool computes from the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no alternatives, and no exclusions relative to the many sibling classify_* tools. The only usage-adjacent instruction is 'Use synthetic or anonymised inputs only', which is a data-handling constraint, not routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_redline_round_changesRedline Round ClassifierC
Read-onlyIdempotent
Inspect

Redline Round Classifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-589-redline-round-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
verdictNo
scope_noteNo
round_chainNo
round_summaryNo
classificationsNo
diff_transcriptNo
rejected_inputsNo
attribution_noteNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description does add real behavioral context beyond that: server-vs-browser compute resolution, transient non-retention of inputs, and an AP2 artifact carrying execution_hash for chain provenance. What it omits is any statement of what the decision function emits or how it fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description leads with a repetition of the title, then repeats the compute-node concept, then embeds a long raw FV-status hash URL. The infrastructure exposition crowds out the one thing an agent needs — what the classifier decides — and the sentence order is not front-loaded around the tool's actual job.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but the description never says what categories or outputs the redline-round classification yields or what belongs in policy_parameters. For a nested-object compliance compute node, the core decision semantics are absent and only the execution plumbing is described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes, parent_tool_ids and policy_parameters fields are already documented in the schema. The description merely duplicates the compute-mode semantics and punts policy_parameters to an external manifest ('See the tool's manifest for field names'), adding little beyond structured data. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool as an 'OpenChainGraph compute node (compliance_control)' but never states what a 'redline round change' is or what classification it produces. It is infrastructure boilerplate that restates the tool's plumbing rather than its function, and it does nothing to distinguish this from the dozens of other compute/classify nodes in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on compute-mode selection ('auto'/'browser') and a data-hygiene constraint ('use synthetic or anonymised inputs only'), but nothing that tells the agent when this tool is the right choice versus alternatives like redline_diff, redline_verify, or the other classify_* tools. No exclusions, no preconditions, no routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_safeguarding_methodCASS 15 Safeguarding Method ClassifierC
Read-onlyIdempotent
Inspect

CASS 15 Safeguarding Method Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-500-classify-safeguarding-method.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rulesetNo
citationsNo
rationaleNo
as_of_dateNo
stream_countNo
coherent_countNo
determinationsNo
incoherent_countNo
minor_unit_exponentNo
open_judgment_countNo
judgment_stream_countNo
classification_verdictNo
audit_exemption_indicatorNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds genuinely new behavioral facts: deterministic compute, transient processing with no storage/logging/retention, server vs browser delegation rules, and an exported AP2 artifact carrying execution_hash for provenance. It still says nothing about the domain behavior of the classification itself, but the added operational context is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a dense boilerplate block mixing node infrastructure, compute binding, transient-processing disclaimers, and a long FV-status URL with a hash that is noise for tool selection. The single piece of actionable domain information an agent needs is absent, while low-value text dominates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but the description never covers the domain semantics of the classification or the expected shape of policy_parameters (deferred to an external manifest). For a compliance classification tool, an agent cannot tell what input to supply or which regulation branch applies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all 4 parameters, so the baseline is 3. The description restates compute-mode semantics but adds no syntax or meaning beyond the schema, and it explicitly defers policy_parameters field names to 'the tool's manifest', adding no parameter value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description's opening line merely restates the name/title ('CASS 15 Safeguarding Method Classifier') and then pivots to node-infrastructure metadata. It never explains what a safeguarding method is, what the classifier decides, or what the output represents. Nothing distinguishes it from siblings like check_safeguarding_reconciliation or build_safeguarding_audit_evidence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this classifier versus the many sibling safeguarding/compliance tools. The only conditional guidance concerns compute modes (auto/server/browser), which is infrastructure routing rather than when-to-use-this-tool guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_sco60_exposureSCO60 Crypto-Asset Exposure ClassifierC
Read-onlyIdempotent
Inspect

SCO60 Crypto-Asset Exposure Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-281-sco60-crypto-asset-exposure-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
groupNo
classificationNo
infra_addon_cappedNo
base_risk_weight_pctNo
group2_limit_breachedNo
infra_addon_pct_inputNo
pillar3_precheck_passNo
infra_addon_pct_appliedNo
risk_weight_applied_pctNo
group2_exposure_pct_tier1No

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly/idempotent/non-destructive/closed-world), but the description adds real behavior: transient processing with no storage or logging, deterministic outputs, server-vs-browser delegation semantics, and the export of an AP2 artifact with execution_hash for chaining. These are genuine traits not derivable from the annotation block.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is boilerplate-heavy: the phrase 'OpenChainGraph compute node' and 'deterministic' are repeated, and the purpose is buried behind a manifest label and repeated qualifiers. It opens with a restated title rather than the operation, and closes with a long URL plus a raw FV-status hash that a reader cannot usefully act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description does cover privacy, provenance, and execution modes. What is missing is the substantive domain layer: what SCO60 exposure classification produces and what policy_parameters the decision function expects, which is outsourced to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode narration largely restates the schema's own compute enum text, and it defers policy_parameters field names to an external manifest, adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title conveys a specific verb+resource ('classify ... exposure') scoped to SCO60, and the body confirms it is a deterministic compute node that emits an AP2 artifact. However, the body never explains what the classification actually decides or how it differs from the many sibling classify_* tools (e.g. classify_digital_asset_regulatory, classify_blockchain_quantum_risk), so an agent gets the topic but not the discriminator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative, only a constraint ('use synthetic or anonymised inputs only') and an explanation of compute modes. The compute-mode text is an invocation detail, not routing guidance, so the agent is left to infer when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_settlement_asset_finalitySettlement-Asset & Legal-Finality ClassifierC
Read-onlyIdempotent
Inspect

Settlement-Asset & Legal-Finality Classifier: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2026-Q3 (ECB Pontes pilot end-Q3 2026; DTCC Collateral AppChain production Oct 2026. Verify SFD/PFMI designations against current regulatory status before that date.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-56-tokenized-settlement-fit-diagnostic. Output feeds: art-58-cross-network-settlement-validator, 506-onchain-cash-leg-finality-checker, 510-digital-asset-regulatory-classifier. Open at: https://ainumbers.co/chaingraph/art-59-settlement-asset-finality-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
status_asofNo
finality_gapsNo
finality_tierNo
recommendationNo
applicable_regimeNo
singleness_verdictNo
settlement_asset_classNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real behavioral context: deterministic execution, server-side vs browser delegation by compute mode, transient non-retention of inputs, synthetic-input-only constraint, and emission of an AP2 artifact with execution_hash. These are traits an agent cannot read off the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with regulatory-deadline tangents, a rendered URL, an FV-status hash, and a snapshot disclaimer that do not help an agent select or call the tool, and it repeats the compute-mode explanation already in the schema. The useful content is not front-loaded ahead of the plumbing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description does cover chaining, computation location, and provenance artifacts. However, for a classification tool the core semantic content — what finality/asset classes are produced and what drives them — is entirely absent, leaving the definition adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters, including the compute enum, are already documented in the schema. The description restates the compute mode behavior and parent chaining but adds no syntax, format, or constraint beyond the schema, and policy_parameters contents are deferred to a manifest. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line name a specific resource — settlement-asset and legal-finality classification — so the verb+resource is present. But the description never states what the classifier actually decides (what inputs map to which finality categories), and it does not distinguish itself from close siblings like classify_settlement_finality, classify_ledger_consensus_finality, or check_cash_leg_finality. The bulk of the text is operational plumbing rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a regulatory deadline (2026-Q3) and an instruction to verify SFD/PFMI designations, but that is domain guidance, not tool-usage guidance. Nothing says when to invoke this versus the many sibling finality classifiers, nor what prerequisites or input classes it expects. The upstream/downstream artifact lists hint at pipeline placement but stop short of usable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_settlement_finalitySettlement Finality ClassifierC
Read-onlyIdempotent
Inspect

Settlement Finality Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-492-classify-settlement-finality.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_of_tsNo
rationaleNo
tier_rankNo
chain_labelNo
tier_ladderNo
claimed_tierNo
draft_pinnedNo
claim_verdictNo
finality_tierNo
required_tierNo
reorg_exposureNo
settlement_modelNo
earliest_final_atNo
meets_required_tierNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new behavioral context: server vs browser execution via compute modes, gpu:true always delegating, transient non-retained processing, and AP2 artifact export with execution_hash. The FV-status snapshot note also clarifies offline verification. This is meaningful disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is poor: the first sentence is boilerplate identity rather than the tool's decision function, and the trailing FV-status hash URL consumes significant space for marginal selection value. The compute-mode and privacy sentences do earn their place, but the overall structure reads like a platform template rather than a tool-specific brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema and annotations are present, so return format and safety need not be re-explained. But for a classification tool the description never conveys the decision logic, the meaning of policy_parameters, or what constitutes finality in this context, leaving the agent unable to judge whether a given input is in scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema itself documents compute mode semantics, parent_hashes/parent_tool_ids ordering, and the policy_parameters object. The description adds no parameter detail beyond what the schema already provides ('See the tool's manifest for field names' is a punt, not added semantics), so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool's name ('Settlement Finality Classifier: OpenChainGraph compute node') without saying what the classification actually decides — what finality dimension is assessed, what legal/technical regime applies, or what an output verdict means. With close siblings like classify_settlement_asset_finality, classify_ledger_consensus_finality, and check_cash_leg_finality, the absence of any differentiation is a real cost.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use synthetic or anonymised inputs only' is a data-handling constraint, not guidance on when to select this tool versus its many finality-related siblings. No when-to-use, when-not-to-use, or alternative is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_t1_posttrade_timingT+1 Post-Trade Timing ClassifierC
Read-onlyIdempotent
Inspect

T+1 Post-Trade Timing Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-506-classify-t1-posttrade-timing.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
stepsNo
verdictNo
rationaleNo
trade_refNo
step_countNo
target_cycleNo
venue_cutoffNo
at_risk_countNo
on_time_countNo
baseline_cycleNo
breached_countNo
cycle_comparedNo
verdict_reasonNo
trade_timestampNo
first_failing_stepNo
undetermined_countNo
newly_breaching_countNo
at_risk_margin_secondsNo
time_zone_offset_minutesNo
first_newly_breaching_stepNo
baseline_not_compared_countNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuine context beyond them: compute modes (auto/server/browser) with browser delegation URL, gpu:true always delegating, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for provenance. These are real operational traits an agent would not get from the annotations. No contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entry is bloated with chain-infrastructure boilerplate (compute node, FV-status receipt URL, snapshot-not-subscription language) that does not help select or invoke the tool, and it redundantly repeats 'OpenChainGraph compute node' twice. The genuinely useful content (compute behavior, privacy, artifact export) is buried behind purpose-less framing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the privacy/compute/provenance profile is covered. However, for a classifier whose core input is an opaque nested policy_parameters object, the description gives no hint about the decision function or what fields to supply, punting to an external manifest. Adequate on infrastructure, thin on the actual classification task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics that the schema already states and adds nothing about the opaque policy_parameters object (it defers to 'the tool's manifest'). Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The only real statement of purpose is the name/title repeated verbatim ('T+1 Post-Trade Timing Classifier'), followed almost entirely by infrastructure boilerplate ('OpenChainGraph compute node', 'Deterministic OpenChainGraph compute node'). It never says what timing is being classified, on what basis, or how this differs from sibling classifiers like classify_settlement_finality or classify_settlement_asset_finality. This is close to tautology with a verb+resource label but no added specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no named alternative among the many settlement/finality classifiers. The only directive is a data-handling caveat ('Use synthetic or anonymised inputs only'), which is a constraint rather than routing guidance. An agent has no basis for choosing this over its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_vida_platform_deemed_supplierViDA Platform Deemed Supplier ClassifierC
Read-onlyIdempotent
Inspect

ViDA Platform Deemed Supplier Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-163-vida-oss-registration-router. Open at: https://ainumbers.co/chaingraph/art-162-vida-platform-deemed-supplier-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds genuinely useful behavioral context: transient processing with no storage/logging/retention, the synthetic-inputs-only constraint, browser delegation behavior for gpu:true, and an AP2 artifact export with execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It front-loads correctly, but there is redundancy ('OpenChainGraph compute node' immediately followed by 'Deterministic OpenChainGraph compute node') and the trailing FV-status offline-receipt sentence is verbose and marginal for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Operationally it is fairly complete—compute modes, data-handling guarantees, output artifact, and downstream consumer are all stated—and no output schema exists to offset. However, for a classification tool it omits the substantive decision semantics (what inputs lead to which deemed-supplier outcome), leaving the core purpose thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description largely repeats the schema's compute-mode text and adds no new meaning for parent_hashes/parent_tool_ids/policy_parameters, leaving 'See the tool's manifest for field names' as the only pointer—no added semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the name/title ('ViDA Platform Deemed Supplier Classifier: OpenChainGraph compute node') and then pivots to infrastructure boilerplate. It never explains what the classification actually decides (e.g., whether a platform is a deemed supplier for ViDA VAT purposes) or how it differs from siblings like route_vida_oss_registration or run_vida_readiness_diagnostic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance or routing against alternatives. The only practical direction ('compute auto vs browser') is operational plumbing already present in the schema, and 'Output feeds: art-163-vida-oss-registration-router' hints at downstream use but does not tell the agent when to select this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_agentic_payment_protocolsAgentic Payments Protocol Comparator & Field CrosswalkA
Read-onlyIdempotent
Inspect

Compare agentic payment protocols (AP2, ACP/Shared Payment Token, x402, Visa TAP, Mastercard Agent Pay) across credential, signing, scope, rail, identity, and audit dimensions; optionally recommend a fit for a scenario. Read-only local lookup and comparison — no state change, no keys held, nothing sent or registered anywhere. Use when a developer or strategist needs to orient across the fragmenting agentic-payments standards. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matrixNo
crosswalkNo
recommendationNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing 'Read-only local lookup — no state change, no keys held, nothing sent or registered anywhere' and 'runs client-side (zero PII, zero network).' This gives the agent clear expectations about side effects, data privacy, and network usage, which are not captured by readOnlyHint or idempotentHint alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences and front-loads the core purpose with specific protocols and dimensions. It includes necessary safety and usage details, but the final sentence about widget rendering and zero PII/network could be viewed as slightly verbose; however, it does convey important behavioral context, so it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the comparison subject, dimensions, optional recommendation behavior, read-only nature, usage scenario, and client-side execution. Since an output schema exists, return format details are not required. The tool is a read-only comparator, and the description provides sufficient context for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema's single 'inputs' property has a generic description pointing to 'manifest input_schema.' The tool description repeats the AIN Bridge prefill mechanism but adds no specific parameter details, such as what input element IDs exist or what values they accept. With 100% schema description coverage, the baseline is 3, but the description provides almost no added parameter meaning beyond the schema, only hinting at 'scenario' input for recommendations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names specific protocols (AP2, ACP/Shared Payment Token, x402, Visa TAP, Mastercard Agent Pay) and the comparison dimensions (credential, signing, scope, rail, identity, audit). It clearly communicates the tool's function as a comparator with an optional recommendation feature, distinguishing it from generic comparison tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage context: 'Use when a developer or strategist needs to orient across the fragmenting agentic-payments standards.' It states the target audience and scenario, though it does not mention exclusions or alternatives like compare_agentic_rail_protocols.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_agentic_rail_protocolsAgentic Payments Protocol ComparatorB
Read-onlyIdempotent
Inspect

Agentic Payments Protocol Comparator: OpenChainGraph compute node (routing_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-16-google-ap2-mandate-builder, art-23-visa-trusted-agent-protocol-inspector, art-24-mastercard-agentic-token-builder, art-25-a2a-agent-card-validator, art-26-x402-payload-decoder-flow-simulator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-22-agentic-payments-protocol-comparator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
scenarioNo
crosswalkNo
protocol_namesNo
recommendationNo
protocols_detailNo
protocols_comparedNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive/closed-world, but the description adds meaningful context: inputs are processed transiently and not stored/logged/retained, browser mode returns a delegation URL rather than a result, and an AP2 artifact with execution_hash is exported for provenance. Those are behavioral facts an agent cannot infer from the annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated and mixes unrelated concerns — a repeated title prefix, compute-routing internals, a list of six downstream tools, and a raw FV-status URL/snapshot disclaimer. The actual comparison semantics are buried or absent, so it is both verbose and under-informative where it matters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is an output schema, so return values need not be explained, and the description does cover compute modes, privacy handling, and artifact provenance. But for a comparison tool it never says which protocols are compared or how results should be interpreted, and it omits the FV-status/publication status context that an agent would need to trust the output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates compute semantics the schema already documents and only partially illuminates parent_hashes behaviour ('sets chain.parent_hashes in the export'), while for policy_parameters it punts to 'See the tool's manifest,' adding no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title establish a verb+resource (compare agentic rail protocols), but the description never states what is compared or what the comparison produces beyond 'an AP2 artifact with execution_hash'. Most of the text is infrastructure boilerplate about OpenChainGraph compute nodes, not the tool's purpose. Worse, the sibling list contains compare_agentic_payment_protocols, and this description does nothing to distinguish itself from that near-identical tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real guidance on the compute parameter (when 'auto' vs 'browser' applies, and that gpu:true nodes always delegate) and warns to use synthetic/anonymised inputs. However, it offers no guidance on when to choose this tool over the obvious sibling compare_agentic_payment_protocols or select_agentic_checkout_protocol.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_basel_2023_vs_2026Basel 2023-vs-2026 Capital-Delta ComparatorC
Read-onlyIdempotent
Inspect

Basel 2023-vs-2026 Capital-Delta Comparator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-357-basel-2023-vs-2026-capital-delta-comparator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourceNo
delta_rwaNo
directionNo
op_rwa_2023No
op_rwa_2026No
rule_statusNo
delta_capitalNo
disambiguationNo
total_rwa_2023No
total_rwa_2026No
credit_rwa_2023No
credit_rwa_2026No
op_capital_2023No
op_capital_2026No
constants_versionNo
delta_capital_pctNo
portfolio_summaryNo
business_indicatorNo
total_capital_2023No
total_capital_2026No
referenced_tool_idsNo
unrecognized_asset_classNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint, idempotentHint and destructiveHint already declared, the bar is lower, and the description does add genuinely useful context: inputs are transiently processed and not stored or logged, an AP2 artifact with execution_hash is exported, and execution can hole-desk to the browser for gpu nodes. That said, it discloses no limitations, determinism caveats, or side-effect notes beyond artifact emission, so it adds moderate value over the annotations rather than rich behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening repeats the title verbatim, then lists infrastructure mechanics (Cloudflare Workers, kernels, gpu flags) and a long provenance-receipt URL with a full hash before the agent learns anything about the comparison itself. Content is mostly on-topic but poorly front-loaded and padded, so it is verbose rather than tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with nested objects and an output schema, the description needs only to cover inputs and behavior; it does cover data handling, chaining, and artifact export, and output semantics are presumably in the schema. What is missing is any statement of what the capital-delta result represents or when it applies, leaving a meaningful conceptual gap for a compliance computation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the descriptions for compute, parent_hashes, parent_tool_ids and policy_parameters already carry their semantics. The tool description largely repeats the compute-mode mechanics already in the schema and adds no new meaning for parent_hashes/parent_tool_ids pairing or policy_parameters field naming, so it neither helps nor harms beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause identify the resource (Basel 2023-vs-2026 Capital-Delta Comparator) and categorize it as an OpenChainGraph compute node, so an agent can broadly tell what domain it serves. However, the description itself adds no specific verb explaining what the comparison computes (capital deltas under which framework, producing what outputs), so the purpose rests almost entirely on the title's label rather than the prose. Adequate but with a clear gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to select this comparator versus siblings like compute_basel31_delta or compute_rwa_erba_2026, nor any stated preconditions for use. The compute-mode discussion is operational (how the tool executes, not when to reach for it), so despite its length the description never answers the routing question. Effectively no when-to-use guidance beyond an implicit 'use synthetic inputs only' note.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_corridor_costCorridor Cost Comparator (World Bank RPW)B
Read-onlyIdempotent
Inspect

Corridor Cost Comparator (World Bank RPW): OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-248-compute-remittance-disclosure, art-250-model-stablecoin-corridor-economics. Open at: https://ainumbers.co/chaingraph/art-249-compare-corridor-cost.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fee_pctNo
corridorNo
pii_noteNo
to_countryNo
send_amountNo
from_countryNo
service_nameNo
table_sourceNo
vs_smart_avgNo
fx_margin_pctNo
table_versionNo
vs_sdg_targetNo
disambiguationNo
sdg_target_pctNo
total_cost_pctNo
cost_at_200_usdNo
cost_at_500_usdNo
meets_sdg_targetNo
regulatory_basisNo
vs_rpw_benchmarkNo
rpw_benchmark_pctNo
rpw_service_countNo
rpw_corridor_avg_200No
rpw_corridor_avg_500No
smart_global_avg_pctNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive behavior, yet the description adds meaningful traits: inputs are processed transiently and not stored/logged/retained, compute modes ('auto'/'server'/'browser') determine where execution happens, and it exports an AP2 artifact with execution_hash for chain provenance. This is substantial operational context beyond the schema and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front-loading of the tool identity is good, but a large portion of the text is packaged boilerplate (compute-binding explainer, the long FV-status hash and offline-verification note) that dilutes the operationally useful content. It is appropriately informative but not tightly edited.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers compute modes, privacy handling, chaining, and provenance adequately. However, for an analytics node it never describes the actual corridor-cost comparison or its parameters, leaving the core analytical behavior opaque to an agent deciding whether to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes the compute-mode semantics but adds little syntax or format detail beyond the schema for the chaining parameters. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a 'Corridor Cost Comparator (World Bank RPW)' and an 'OpenChainGraph compute node (analytics_mandate)', and names the upstream artifacts it consumes. But it never states what it actually computes or compares (corridor costs across remittances?), so the purpose is carried mostly by the name/title rather than the description text. It also fails to differentiate from close siblings like check_g20_corridor_cost_gap, model_stablecoin_corridor_economics, or compute_cross_border_fees.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to alternatives, no prerequisites for selecting compute modes, and no indication of when this comparator is preferable to sibling analyses. The only usage-adjacent instruction is 'Use synthetic or anonymised inputs only', which is a data constraint rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_cross_ccp_pqd_fieldsCross-CCP PQD ComparatorC
Read-onlyIdempotent
Inspect

Cross-CCP PQD Comparator: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-528-cross-ccp-pqd-comparator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
fieldsNo
entity_aNo
entity_bNo
cross_ccpNo
rationaleNo
thresholdNo
rejected_inputsNo
source_citationsNo
unavailable_field_countNo
fully_available_field_countNo
partially_available_field_countNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses meaningful behavior: server-side vs browser compute delegation rules, gpu:true always delegating, transient processing with no storage/logging/retention, and an AP2 artifact export carrying execution_hash for provenance. These details genuinely extend the annotation-provided safety profile, though the execution/article framing is somewhat repetitive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads a redundant title/type restatement and then packs compute semantics, retention policy, artifact export, a URL, and FV-status details into a dense block. Several sentences earn their place, but the opening is wasted and the density hurts scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, the core decision inputs live in a free-form 'policy_parameters' object that the description defers to 'the tool's manifest', leaving the agent without field-level guidance for the primary payload, while the peripheral compute/provenance concerns are covered well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation duplicates the schema's own enum description and adds nothing for the chaining or policy_parameters fields. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Cross-CCP PQD Comparator') and labels the node as a 'regulatory_reporting' compute node, but never explains what 'PQD fields' are or what the comparison actually produces. An agent cannot tell what resource is being compared without opening the artifact or manifest, and nothing distinguishes it from siblings like compare_basel_2023_vs_2026 or compare_corridor_cost.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, nor any prerequisites. The only directive, 'Use synthetic or anonymised inputs only', is an input constraint rather than usage routing. The agent is left to infer applicability entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_model_outcome_analysisModel Outcome-Analysis ComparisonC
Read-onlyIdempotent
Inspect

Model Outcome-Analysis Comparison: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-450-model-inventory-entry. Output feeds: art-453-model-validation-status. Open at: https://ainumbers.co/chaingraph/art-451-model-outcome-analysis.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
periodsNo
worst_periodNo
total_periodsNo
breach_periodsNo
outcome_statusNo
breach_rate_pctNo
error_threshold_pctNo
max_breach_rate_pctNo
max_absolute_percent_errorNo
mean_absolute_percent_errorNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds valuable non-annotation context: deterministic execution, server-side vs browser delegation behavior, transient processing with no storage/logging/retention, AP2 artifact export with execution_hash for provenance, and explicit upstream/downstream artifact links. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and repetitive, opening with the title and then redundantly stating 'OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.' It includes a long FV-status URL and snapshot caveat that, while provenance-related, dilute the operational summary an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex compute node with an output schema and rich annotations, the description covers compute modes, privacy handling, provenance chaining, and artifact inputs/outputs. It remains incomplete on what the actual comparison logic is and how policy_parameters drive the decision function, though the schema defers field names to a manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters are already well documented in the input schema, including the compute enum and parent_hashes/parent_tool_ids chaining. The description adds only marginal parameter meaning beyond the schema, mostly echoing the compute modes, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the tool name/title ('Model Outcome-Analysis Comparison') and identifies it as an OpenChainGraph compute node, but never states what the comparison actually does or how it differs from siblings like replicate_model_outputs or assess_model_validation_status. An agent cannot tell from the text what computation is performed beyond the vague domain label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear conditions for the compute mode parameter (auto vs server vs browser, gpu:true always delegates) and a privacy constraint ('Use synthetic or anonymised inputs only'), which implies when to use this node. However, it offers no guidance on when to choose this tool over alternatives in the large sibling set, leaving tool selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_pension_lump_sum_annuityPension Lump-Sum vs. Annuity Decision EngineC
Read-onlyIdempotent
Inspect

Pension Lump-Sum vs. Annuity Decision Engine: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-282-social-security-claiming-optimizer. Open at: https://ainumbers.co/chaingraph/art-283-pension-lump-sum-vs-annuity-decision-engine.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lumpSumNo
annuityPVNo
colaAppliedNo
survivorPctNo
breakEvenAgeNo
breakEvenRateNo
recommendationNo
survivorOptionCostMonthlyNo
reinvestmentRequiredReturnNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent/non-destructive annotations, the description discloses meaningful behavior: compute:"auto" server-side execution vs compute:"browser" client delegation, gpu:true always delegating, transient non-stored inputs, and an AP2 artifact export carrying execution_hash for chain provenance. This is real context the annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the title restatement, then a dense block of infrastructure boilerplate. Much of it earns its place (compute binding, provenance), but 'OpenChainGraph compute node' is repeated and the FV-status URL hash string is noise for an invoking agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The compute/execution/provenance mechanics are well covered and an output schema exists so return values need not be explained, but the actual decision function — what the pension lump-sum vs. annuity comparison returns and what policy_parameters it needs — is entirely absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds nothing about policy_parameters contents (deferring to 'the tool's manifest'), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title verbatim ('Pension Lump-Sum vs. Annuity Decision Engine: OpenChainGraph compute node') and never states what the tool actually computes — no mention of breakeven age, NPV, payout comparison, or decision criteria. The name/title carry the meaning; the description adds none of its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no distinction from siblings like compute_annuity or optimize_social_security_claim_age. The only routing signal is that it consumes upstream artifacts from art-282-social-security-claiming-optimizer, which is provenance chaining rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_receivables_finance_economicsForfaiting vs Factoring vs Invoice Discounting EconomicsC
Read-onlyIdempotent
Inspect

Forfaiting vs Factoring vs Invoice Discounting Economics: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-479-compare-receivables-finance-economics.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNo
portfolioNo
cost_rankingNo
cheapest_instrumentNo
highest_proceeds_instrumentNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, but the description adds real behavioral context beyond them: server-side vs browser execution semantics, gpu:true always delegating, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash for provenance. That is genuine disclosure the annotations do not supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the safety/compute sentences do earn their place, but the FV-status URL paragraph and repeated 'OpenChainGraph compute node' framing read as template boilerplate that dilutes the definition for a call-deciding agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a comparison/compute tool whose domain parameters are entirely opaque, the description never says what is being compared, on what basis, or what the user must supply. It is complete about plumbing and silent about the decision function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; the description's compute:auto/browser explanation merely repeats the schema field text. Critically, the actual decision inputs inside policy_parameters remain opaque (schema defers to 'the tool's manifest') and the description does not compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause names the compared objects (forfaiting, factoring, invoice discounting) and the resource (receivables finance economics), so an agent can tell roughly what domain it covers. However there is no verb describing what is actually computed — no "computes the effective cost/all-in yield comparison across X dimensions" — so the purpose is largely a restatement of the title followed by infrastructure boilerplate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Nothing states when to select this over the many adjacent economics tools (e.g. compute_ltc_funding_comparator, analyze_dc_vs_lc_cost_benefit, model_arc_cpn_economics) or what inputs/prerequisites are needed. The only 'when' guidance is the compute-mode mechanics, which is execution routing, not usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_rights_matrixCross-License Rights ComparatorC
Read-onlyIdempotent
Inspect

Cross-License Rights Comparator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-198-cross-license-rights-comparator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
diffNo
ref_aNo
ref_bNo
checksNo
sourcesNo
vector_aNo
vector_bNo
dimensionsNo
disclaimerNo
matrix_noteNo
more_permissive_thanNo

TDQS

C2.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description does disclose real behavior: transient processing with no logging or retention, a browser-delegation fallback for compute modes, and an exported AP2 artifact with execution_hash for provenance. However, it is generic OpenChainGraph boilerplate that never explains tool-specific behavior (e.g. how inputs map to a rights comparison), so the added value is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long but front-loaded with title repetition and infrastructure boilerplate (compute binding, Cloudflare Workers, FV-status URL) rather than the tool's purpose, which is never stated. Sentences carry information about mechanics yet none about the actual comparison, so the space is poorly spent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but for a compliance comparison node with a free-form policy_parameters object and nested inputs, the description supplies zero domain context about what rights/licenses are evaluated. The core purpose gap leaves an agent unable to invoke it meaningfully despite rich schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute enum plus policy_parameters are already documented in the schema, so the description adds no parameter meaning beyond it. The baseline of 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence merely restates the title ('Cross-License Rights Comparator: OpenChainGraph compute node') without saying what rights are compared, across which licenses, or what the result expresses. Siblings like check_license_compatibility, choose_cc_license, certify_license_election and build_rights_record are never distinguished, so an agent cannot tell which license-related tool this is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all: no condition, no alternative, no prerequisite. The compute-mode discussion describes execution mechanics, not when this comparator should be chosen over the many sibling license/rights tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compile_model_risk_lineage_packCompile Model Risk Lineage PackB
Read-onlyIdempotent
Inspect

Compile Model Risk Lineage Pack: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-450-model-inventory-entry, art-451-model-outcome-analysis, art-453-model-validation-status, art-488-model-replication-diff, art-489-model-test-battery. Open at: https://ainumbers.co/chaingraph/art-562-compile-model-risk-lineage-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new behavioral context: deterministic execution, server-vs-browser delegation rules including gpu:true always delegating, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash. Only the compute-mode restatement overlaps the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with purpose and scoping, which is good, but it carries a fully verbose FV-status digest URL plus an offline-verification aside that reads as provenance boilerplate for most invocations. Information density is uneven rather than wasteful overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and four optional parameters, the description does cover the response shape reasonably: an AP2 artifact with execution_hash, or a browser delegation URL under compute:'browser'. Chain provenance via parent_hashes/parent_tool_ids is implied but the exact artifact/return structure could be spelled out further.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's parameter-relevant content (default 'auto', browser delegation, synthetic inputs) largely repeats the schema's own compute description, adding little beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Compile'), the resource (Model Risk Lineage Pack) and its role ('OpenChainGraph compute node (compliance_mandate)'), and it names the exact upstream artifacts it consumes, which meaningfully distinguishes it from siblings like build_model_inventory_entry or publish_model_risk_head. It stops short of a plain-language statement of what the compiled output represents for model risk, so an agent still has to infer the business purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives input constraints ('Use synthetic or anonymised inputs only') and compute-mode defaults, but no when-to-use vs alternatives guidance. Nothing tells the agent when this tool should be chosen over sibling lineage/pack builders such as record_model_input_lineage or assemble_ocg_evidence_bundle.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compile_nav_error_evidence_packCompile NAV-Error Evidence PackA
Read-onlyIdempotent
Inspect

Compile NAV-Error Evidence Pack: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-373-recompute-fund-nav, art-374-test-nav-error-materiality. Open at: https://ainumbers.co/chaingraph/art-660-compile-nav-error-evidence-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorYes
fenceYes
fund_idYes
warningsYes
correctionYes
not_provenYes
notificationYes
cited_receiptsYes
detection_dateYes
affected_periodYes
declared_policyYes
structural_errorYes
industry_conventionYes
materiality_verdictYes
regulatory_frameworkYes
reprocessing_need_indicatedYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, non-open-world), the description discloses meaningful behavior: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs are required, gpu:true always delegates to browser, and the output carries an execution_hash for chain provenance plus an offline-verifiable FV-status receipt. These are substantive behavioral facts an agent could not derive from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and compute behavior are front-loaded, which is good, but the text is a dense run-on that pads with a documentation URL and a long FV-status content hash that contribute little to tool selection. Several clauses restate the same server-vs-browser rule that the schema already documents.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter coverage, the description only needs to carry behavioral and dependency context, and it does: compute modes, data-retention posture, upstream prerequisites, and provenance output. It is close to complete, though it never characterizes the evidence pack's content or how it relates to sibling evidence packs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description reinforces the compute:auto/browser behavior and the chaining intent via execution_hash, but adds no syntax or format detail beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the operation concretely: it is an OpenChainGraph compute node that exports an AP2 artifact with execution_hash and consumes upstream artifacts from art-373-recompute-fund-nav and art-374-test-nav-error-materiality. That gives a clear verb (compile/export) plus resource, though it does not differentiate itself from the many sibling evidence-pack compilers (compile_rebalance_evidence_pack, assemble_ocg_evidence_bundle, build_evidence_pack) beyond the NAV-error scope in its name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies clear contextual guidance: the tool is meant to run after the two named upstream artifacts, and it explains when compute is server-side vs browser-delegated and that gpu:true nodes always delegate. It stops short of explicit when-to-use/when-not routing against alternative evidence-pack or artifact-export tools, so no exclusion guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compile_rebalance_evidence_packCompile Rebalance Evidence PackA
Read-onlyIdempotent
Inspect

Compile Rebalance Evidence Pack: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-646-compile-rebalance-evidence-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
index_idNo
removalsNo
additionsNo
not_provenNo
weight_deltasNo
cited_receiptsNo
rebalance_dateNo
structural_errorNo
regulatory_frameworkNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds genuinely useful non-schema behavior: transient processing with no storage, logging or retention, deterministic execution, and browser-delegation semantics for gpu:true or forced compute:\"browser\". It doesn't discuss failure modes or output shape beyond naming execution_hash.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode behavior is front-loaded well, but the opening repeats itself ('OpenChainGraph compute node' then 'Deterministic OpenChainGraph compute node'), and the trailing marketing URL plus long FV-status paragraph consume space without helping invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the safety profile, the description supplies the missing pieces an agent needs: execution model, data-handling guarantees, and artifact semantics. Only the relationship to the numerous sibling evidence-pack tools is left uncovered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the compute-mode text in the description largely restates the schema's own enum description. parent_hashes, parent_tool_ids and policy_parameters get no extra explanation in the description, so it adds little beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource (Compile Rebalance Evidence Pack) and identifies it as an OpenChainGraph compute node in the compliance_mandate domain, plus the concrete output (an AP2 artifact with execution_hash). It does not distinguish itself from near-name siblings like compile_nav_error_evidence_pack or assemble_ocg_evidence_bundle, so an agent must infer the rebalancing-specific scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: it explains which compute mode applies and warns 'Use synthetic or anonymised inputs only', which is a real precondition. But there is no guidance on when to choose this tool over the many other evidence-pack compilers, nor any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compile_work_mandateWork Mandate CompilerB
Read-onlyIdempotent
Inspect

Work Mandate Compiler: OpenChainGraph compute node (governance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-274-compile-work-mandate.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
chain_configNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds genuinely new context: server-vs-browser execution semantics, that inputs are processed transiently and not stored/logged/retained, and that the output is an AP2 artifact carrying execution_hash for chain provenance. This goes meaningfully beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title and category are front-loaded and the sentences are dense and largely informative, packing execution modes, privacy posture, and output shape into one block. The trailing FV-status sentence with a long hash URL is costly boilerplate, but nothing is gratuitously repeated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers the execution modes, transient data handling, and artifact output for a 4-param nested-object tool. What is missing is domain context (what a work mandate is) and any routing against sibling compile_* tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter is already documented in the schema, so the baseline is 3. The description reinforces the compute modes and the chain-provenance role of execution_hash, but adds no syntax or format detail beyond what the schema (and the linked manifest) already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb+resource (compile + work mandate) and names the output (AP2 artifact with execution_hash), but "work mandate" and "governance_mandate" are never defined, and it does not distinguish this from the many compile_* siblings it sits among (compile_model_risk_lineage_pack, compile_nav_error_evidence_pack, etc.). Purpose is implied through category membership rather than spelled out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives; the sibling landscape is large and undifferentiated. The only usage instruction is the constraint "Use synthetic or anonymised inputs only," which governs input selection but not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compose_ap2_promptAP2 Prompt Template GeneratorC
Read-onlyIdempotent
Inspect

AP2 Prompt Template Generator: OpenChainGraph compute node (prompt_template). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: ALL. Open at: https://ainumbers.co/chaingraph/ptg-01-ap2-prompt-template-generator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
taskYes
toneYes
audienceYes
source_tool_idYes
claude_deeplinkYes
generated_promptYes
include_citationsYes
mandate_type_matchedYes
source_execution_hashYes
generated_prompt_lengthYes

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real substance: deterministic execution, transient processing with no storage logging or retention, a requirement to use synthetic/anonymised inputs, and an exported artifact carrying execution_hash. The FV-status note helpfully clarifies the receipt is an offline snapshot rather than a subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and compute behavior are front-loaded, but the trailing FV-status sentence with a full 64-hex hash and the 'Open at:' URL add bulk without aiding invocation. Sentences are dense and mix several concerns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and data-handling/determinism are covered. However, for a chaining compute node with nested parent_hashes/parent_tool_ids and a policy_parameters object, the description never states what the tool computes or how the chain inputs are used, leaving a material gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description largely repeats the compute enum semantics and defers policy_parameters to 'the manifest', adding little of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Aside from restating the name/title ('AP2 Prompt Template Generator') and labeling it an 'OpenChainGraph compute node (prompt_template)', the description never says what the composed prompt template actually is or does. With many AP2 siblings (ap2_aml_mandate_builder, build_google_ap2_mandate, draft_ap2_mandate_credential), no distinguishing detail is offered.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute-mode paragraph describes auto/server/browser behavior, but that is already verbatim in the schema and is a parameter mechanic, not guidance on when to pick this tool over an AP2 sibling. 'Output feeds: ALL' is cryptic and gives no routing condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compose_control_test_evidenceControl-Test Evidence ComposerB
Read-onlyIdempotent
Inspect

Control-Test Evidence Composer: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-461-control-test-evidence-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tester_idNo
control_idNo
deficiencyNo
fail_countNo
pass_countNo
gate_statusNo
sample_sizeNo
tester_roleNo
tested_countNo
extra_resultsNo
exception_rateNo
exception_countNo
missing_resultsNo
population_hashNo
test_conclusionNo
reporting_periodNo
within_toleranceNo
coverage_completeNo
not_a_severity_judgmentNo
tolerable_exception_countNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses deterministic execution, transient processing with no storage/logging/retention, server-vs-browser compute routing, and that it exports an AP2 artifact carrying an execution_hash. These are substantive behavioral facts an agent cannot infer from the annotations alone, though it stops short of describing failure or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the name, node type, and purpose, which is good, but a large fraction of the text is low-value infrastructure boilerplate: the spec URL and the FV-status receipt paragraph, which do not help an agent select or call the tool. The genuinely useful sentences (data handling, artifact export) are diluted by this noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description does cover compute modes, data handling, and provenance export. What is missing for a tool in this crowded evidence/attestation family is routing context — when this composer is the right choice versus the sibling builders, lint, and verify tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation largely restates the schema's own wording, and it adds no syntax or ordering detail (e.g., that parent_tool_ids must align positionally with parent_hashes) beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource (compose control-test evidence) and identifies the node category (compliance_control) and artifact type (AP2 with execution_hash). However, it offers no differentiation from the many sibling evidence builders/attestation tools (e.g., build_agent_test_evidence, lint_aiuc1_control_evidence, assemble_ocg_evidence_bundle), so an agent cannot tell which to select without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is the constraint 'Use synthetic or anonymised inputs only,' which is a data-handling rule rather than a when-to-use/why-not statement. There is no indication of when this composer should be chosen over the sibling evidence-pack and attestation tools, and no prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compose_eval_attestation_receiptEval Attestation Receipt ComposerA
Read-onlyIdempotent
Inspect

Eval Attestation Receipt Composer: OpenChainGraph compute node (governance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-438-eval-attestation-receipt-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eval_idNo
not_provenNo
eval_formatNo
eval_log_hashNo
claim_strengthNo
mandate_referenceNo
verify_instructionsNo
attestation_determinationNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioural context beyond them: execution is deterministic, inputs are processed transiently and not stored, logged or retained, and browser-mode calls return a delegation URL rather than a result. It does not state auth requirements or latency characteristics, and it is consistent with (not contradictory to) the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is reasonable and no sentence is pure filler, but the tool URL and especially the full 64-character FV-status hash path consume significant space for marginal selection value, and the compute-binding mechanics crowd out a clear statement of purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description does cover the compute binding, the privacy posture, the chaining inputs and the provenance artifact. It remains thin on when to prefer this node over sibling composers and on the shape of policy_parameters, so it is complete but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description re-explains compute modes (partly duplicating the enum description) and adds nothing about how parent_hashes/parent_tool_ids are paired or what belongs in policy_parameters, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific function and output: a deterministic OpenChainGraph compute node that exports an AP2 artifact carrying an execution_hash for chain provenance. However, it never explains what an 'eval attestation receipt' or 'governance_mandate' is, and it draws no boundary against the many sibling compose_/build_ tools, so an agent cannot distinguish it from neighbours on description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Useful constraints are present — 'Use synthetic or anonymised inputs only' and the compute mode selection rules ('auto' default, 'browser' forces delegation, gpu:true always delegates). But there is no guidance on when this tool should be chosen over alternatives such as build_chaingraph, emit_chaingraph_artifact, or the other receipt composers in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compose_globe_girGloBE Information Return (GIR) ComposerB
Read-onlyIdempotent
Inspect

GloBE Information Return (GIR) Composer: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-457-globe-gir-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fiscal_yearNo
submittableNo
mne_group_nameNo
gir_xml_summaryNo
total_topup_taxNo
jurisdiction_rowsNo
gir_schema_versionNo
jurisdictions_not_evaluatedNo
jurisdictions_with_deemed_zeroNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description's added value is real: it discloses transient processing with no storage, logging or retention, the server-vs-browser delegation behavior, and the AP2 artifact/execution_hash provenance export. These are meaningful behavioral traits beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool name, but the body is padded with redundant phrasing ('OpenChainGraph compute node' repeated) and a long FV-status URL/receipt sentence that crowds out substantive tool description. The compute-binding mechanics could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full schema coverage, the description need not explain return values, and it covers the compute binding, transient-processing guarantees, and provenance export. The remaining gap is the opaque policy_parameters contract, which it defers to 'the tool's manifest' rather than describing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description restates the compute-mode semantics but adds nothing new about parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title establish that this composes a GloBE Information Return, but the description leans heavily on generic OpenChainGraph compute-node boilerplate and never explains what 'composing' the GIR actually produces beyond 'an AP2 artifact with execution_hash'. It also fails to distinguish itself from close siblings like compute_globe_jurisdictional_etr and compute_globe_topup_tax.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational guidance ('Use synthetic or anonymised inputs only') and explains compute-mode selection (auto/server/browser, gpu:true always delegates), which is useful. However, it offers no guidance on when to choose this composer over the many other GloBE/tax compute siblings, so tool-selection context is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compose_workpaper_bundleWorkpaper Bundle ComposerB
Read-onlyIdempotent
Inspect

Workpaper Bundle Composer: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-462-je-ruleset-screen, art-463-recalc-suite, art-464-confirmation-matcher. Open at: https://ainumbers.co/chaingraph/art-465-workpaper-bundle-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rolesNo
exceptionsNo
procedure_idNo
exception_countNo
population_hashNo
kernel_artifactsNo
kernel_artifact_countNo
undisposed_exceptionsNo
disposed_exception_countNo
malformed_kernel_artifactsNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, it discloses that inputs are processed transiently and not stored, logged or retained, that synthetic inputs are required, and that compute:browser returns a browser delegation URL while gpu:true nodes always delegate. This is meaningful behavioral context that annotations alone do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavioral facts are front-loaded, but the definition is bloated by an inline URL and a long FV-status receipt hash sentence that add noise rather than invocation value, and it restates compute-mode semantics already in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover the safety profile. The description completes the picture with data-handling guarantees, chaining inputs, and compute routing, which is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description re-explains compute modes (largely duplicating the schema) and defers policy_parameters to the manifest, adding only the synthetic-input caveat.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies it as a deterministic OpenChainGraph compute node that exports an AP2 artifact with execution_hash, and lists the upstream artifacts it consumes. However, the actual functional purpose (composing a workpaper bundle) is never explained and it is not distinguished from the many sibling build_/compose_ tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The upstream artifact list (art-462/463/464) implies where this sits in a pipeline, giving positional context for use. But there is no explicit when-to-use versus alternatives or when-not guidance for an agent deciding among the numerous compose/build siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_15c3_3_reserve15c3-3 Customer Reserve Formula CalculatorA
Read-onlyIdempotent
Inspect

15c3-3 Customer Reserve Formula Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-397-lint-trace-cat-reports. Open at: https://ainumbers.co/chaingraph/art-396-compute-15c3-3-reserve.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
debit_itemsNo
pab_variantNo
credit_itemsNo
rules_versionNo
regulatory_basisNo
total_debits_musdNo
deposit_sufficientNo
total_credits_musdNo
surplus_shortfall_musdNo
reserve_requirement_musdNo
reserve_account_balance_musdNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuine behavioural context beyond that: transient processing with no storage/logging/retention, the synthetic-inputs-only requirement, an exported AP2 artifact carrying execution_hash, and an FV-status receipt that is a snapshot rather than a subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool identity and node type are front-loaded, but the compute-mode sentence duplicates the schema verbatim and the FV-status/receipt boilerplate is dense for the value it adds. Structure is acceptable but several sentences do not earn their place beyond the structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, read-only annotations, and full schema coverage, the description is largely sufficient for correct invocation, and it usefully names a downstream consumer (art-397-lint-trace-cat-reports). The gap is that the substantive computation inputs live in an opaque policy_parameters object whose fields are never described, so an agent cannot tell what data to supply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode behaviour (auto/server/browser, gpu delegation) that the schema already documents, and it defers the actual formula inputs entirely to 'the tool's manifest' without naming any policy_parameters fields for a 15c3-3 reserve computation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: computes the SEC Rule 15c3-3 Customer Reserve Formula, and categorises itself as an OpenChainGraph compliance_mandate compute node. It does not, however, distinguish itself from adjacent reserve/reconciliation siblings such as precheck_reserve_attestation, recompute_stablecoin_reserve, or check_safeguarding_reconciliation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the compute-mode semantics tell the agent when server vs browser execution applies, and 'Use synthetic or anonymised inputs only' is a real constraint. There is no explicit when-to-use/when-not guidance or routing to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_aca_affordability_safe_harborACA Affordability Safe-Harbor CalculatorC
Read-onlyIdempotent
Inspect

ACA Affordability Safe-Harbor Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-299-aca-esrp-exposure. Open at: https://ainumbers.co/chaingraph/art-298-aca-affordability-safe-harbor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
harborsNo
tax_yearNo
affordability_pctNo
harbors_satisfiedNo
satisfies_any_harborNo
lowest_cost_self_only_monthly_premiumNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety bar is low. The description adds real value beyond them: transient, non-logged input handling; the compute-mode routing rules (server vs. browser delegation, gpu:true always delegates); and an AP2 artifact with execution_hash for provenance. It stops short of noting failure modes or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text opens with two near-duplicate sentences ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node') and pads with an on-site URL and FV-status receipt path of little decision value. Front-loading exists but signal-to-noise is poor for a definition whose core computation is never described.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and behavioral traits are covered. What is missing is the essential domain content: what the safe-harbor test computes and what policy_parameters to supply (deferred to an unlinked manifest). For a compliance computation node, an agent cannot act on the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, establishing a baseline of 3. The description restates the compute-mode semantics but adds nothing new, and for policy_parameters it explicitly defers to an external manifest, so the actual decision inputs remain opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name identify an ACA affordability safe-harbor calculator and the description labels it an OpenChainGraph compliance_mandate compute node, so the domain is clear. However, it never states what the safe-harbor computation actually determines (e.g. W-2 wages, rate-of-pay, or federal poverty line test) or what decision it supports. Most of the text is compute-infrastructure boilerplate rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Practice guidance that inputs must be synthetic/anonymised is given, and a downstream consumer (art-299-aca-esrp-exposure) is named. But there is no when-to-use/when-not guidance, no prerequisites, and no differentiation from the many sibling compute_* and build_*_safe_harbor tools. The agent is left to infer applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_algo_execution_schedule_simulatorAlgo Execution Schedule SimulatorB
Read-onlyIdempotent
Inspect

Algo Execution Schedule Simulator: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/669-algo-execution-schedule-simulator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, but the description adds substantial context beyond them: transient processing that is 'not stored, logged, or retained', browser-delegation behavior for compute:'browser' and gpu:true nodes, and an exported AP2 artifact with execution_hash for chain provenance. That is genuinely useful behavioral disclosure for a compute tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core sentences are front-loaded, but the entry carries a large amount of boilerplate — an external URL and a long FV-status receipt paragraph with a full hash — that does not help an agent decide or invoke. Roughly a third of the text is non-operational metadata.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the work of describing returns: an AP2 artifact with execution_hash, or a browser delegation URL. Combined with privacy guarantees, compute-mode semantics, and chaining inputs, it covers what an agent needs to call it, though the analytical result of the simulation remains undefined.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema; the description restates the compute-mode semantics and the role of parent_hashes/policy_parameters without adding syntax or format detail beyond what is structured. This is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (analytics_mandate)' that runs a 'decision function', but never states what an 'algo execution schedule simulation' actually computes. The name conveys the resource while the body spends its budget on infrastructure (compute modes, delegation, export) rather than the analytical purpose, so the agent knows what kind of node it is but not what it produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one concrete usage rule ('Use synthetic or anonymised inputs only') and explains the compute-mode selection logic, plus points to 'the tool's manifest for field names'. However, there is no guidance on when to prefer this tool over the hundreds of sibling compute/analytics tools, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_annuityAnnuity PV / FV / Payment SolverC
Read-onlyIdempotent
Inspect

Annuity PV / FV / Payment Solver: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-327-tvm-annuity.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fvNo
pvNo
dueNo
pmtNo
noteNo
nperNo
rate_pctNo
solved_forNo
annuity_factorNo
regulatory_basisNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description earns credit for adding real behavior: compute:'auto' vs 'server' vs 'browser' semantics, gpu:true always delegating, transient non-retention of inputs, and the export of an AP2 artifact with execution_hash plus the fv-status snapshot caveat. It stops short of describing error/fallback behavior, but this is well beyond what the annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but much of the text serves the OpenChainGraph framework (compute binding, Cloudflare Workers, AP2 provenance, fv-status URL and hash) rather than helping an agent pick or call this specific tool. It is not padded to absurdity, but a significant share of sentences would not earn their place in a tool-selection context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the annotations plus compute-mode text give adequate operational context. However, the description never states what the annuity calculation actually takes or produces at the domain level, and the free-form policy_parameters object is left unresolved, so an agent knows the plumbing but not the substance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes, and parent_tool_ids parameters are already documented and the baseline is 3. The description adds no parameter-level meaning beyond the schema, and it explicitly defers the substantive decision inputs ('See the tool's manifest for field names'), leaving policy_parameters opaque — but that gap is not something the description compensates for either.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence restates the title verbatim ('Annuity PV / FV / Payment Solver') and then labels it a generic 'OpenChainGraph compute node (analytics_mandate)', so the description's own contribution to what the tool actually computes (PV, FV, payment, rate, timing conventions) is nil. It never distinguishes this from nearby siblings such as compare_pension_lump_sum_annuity, compute_npv, or compute_irr. The name/title carry all the meaning; the body is tautological framework text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no named alternative, despite a large sibling set of annuity/NPV/IRR calculators. The only usage-adjacent statements are the compute-mode mechanics and the 'use synthetic or anonymised inputs only' constraint, neither of which tells the agent when to reach for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_apy_earned_recomputeAPY-Earned RecomputeC
Read-onlyIdempotent
Inspect

APY-Earned Recompute: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/663-apy-earned-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, and the description adds genuinely useful behavior: inputs are processed transiently and never stored or logged, synthetic inputs are required, and the call exports an AP2 artifact carrying an execution_hash for chain provenance. That is substantive context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Much of the text is platform boilerplate that is identical across these nodes (transient processing notice, FV-status URL and a 64-char hash snapshot line, marketing-style URL). The genuinely tool-specific content is one short clause, so the definition is padded rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool whose policy_parameters are an opaque free-form object with no output schema, the description does cover execution mode, privacy, and artifact provenance. However it omits the single most important fact — what the APY-earned decision function computes and what a valid policy_parameters payload contains — which leaves the caller unable to invoke it meaningfully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail, and the description largely repeats the compute-mode text. It adds nothing on the free-form policy_parameters beyond deferring to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the name and labelling it an 'OpenChainGraph compute node (compliance_control)' and 'deterministic', but it never says what APY-earned recomputation actually computes — no input domain, no output quantity, no verb specific to the calculation. An agent learns the platform category, not the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains compute-mode semantics (auto/server/browser) but gives no guidance on when to choose this tool over the hundreds of sibling compute_* nodes. No conditions, no exclusions, no alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_asset_liability_coverageAsset/Liability CoverageB
Read-onlyIdempotent
Inspect

Asset/Liability Coverage: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-539-asset-liability-coverage.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
statusNo
formulaNo
coverage_ratioNo
asset_breakdownNo
total_assets_musdNo
liability_breakdownNo
surplus_shortfall_musdNo
total_liabilities_musdNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real value beyond them: transient processing with no storage, logging or retention, a mandate to use synthetic/anonymised inputs only, deterministic execution, and an AP2 artifact carrying execution_hash for provenance. These are meaningful operational disclosures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is poor: the reading opens with repeated boilerplate ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node') before reaching anything task-relevant. The FV-status and URL trailing content is useful for provenance but verbose, and several phrases are redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is not required, and privacy/compute/provenance behaviour is well covered. However, for a 4-parameter compute tool with nested policy_parameters and a huge sibling set, the description never explains what the asset/liability coverage decision evaluates, leaving the core purpose under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it clarifies that browser mode returns a delegation URL, that gpu:true nodes always delegate, and that parent_hashes/parent_tool_ids set chain.parent_hashes in the export. It still leaves policy_parameters' actual field names to the manifest, which is the main gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as an OpenChainGraph compute node in the compliance_control family producing 'Asset/Liability Coverage', but it never says what the coverage computation actually is (what inputs it consumes, what decision it makes). Against dozens of sibling compute_* tools, it offers no functional distinction beyond the name itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to select this tool versus sibling coverage/compliance compute nodes. The compute-mode discussion (auto/server/browser) is operational configuration, not task-selection guidance, and no prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_authzen_conformance_fixtureAuthzen Conformance FixtureB
Read-onlyIdempotent
Inspect

Authzen Conformance Fixture: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-651-authzen-conformance-fixture.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
specNo
decisionsNo
decision_countNo
all_match_expectedNo
all_context_invariantNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, but the description adds genuinely useful context beyond them: determinism, the server-vs-browser compute delegation rule, transient (non-stored, non-logged) input processing, and that it exports an AP2 artifact carrying an execution_hash. The FV-status snapshot caveat is also disclosed. This is above the annotation-covered bar, though it still omits failure modes and any notion of side effects from artifact emission.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening repeats the title and then restates 'Deterministic OpenChainGraph compute node' almost immediately, wasting the most valuable position. The compute/retention/artifact content is useful, but the trailing FV-status receipt with a full 64-hex hash and explanation is bulky for a tool selector. Front-loading is weak.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety, an output schema covering returns, and full schema param descriptions, the description only needs to fill domain gaps. It covers compute mode, data handling and artifact export, but omits what the conformance fixture validates and any indication of when a result would be considered conforming vs failing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description largely restates the compute-mode enum semantics rather than adding new meaning, and says nothing extra about the chaining parameters. Baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a deterministic OpenChainGraph compute node in the compliance_control category and names the artifact type (AuthZEN conformance fixture), but it never states what the fixture actually computes or what conformance property it establishes. It is specific about execution mechanics yet vague about the actual domain purpose, so an agent cannot distinguish it from the many other compute_* siblings beyond the category label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over the numerous sibling compute/check tools. The only usage rule given is the input constraint 'use synthetic or anonymised inputs only', which is a data-handling restriction rather than a when-to-use instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_basel31_deltaBasel 3.1 Reporting Delta CalculatorB
Read-onlyIdempotent
Inspect

Basel 3.1 Reporting Delta Calculator: OpenChainGraph compute node (capital_assessment). Regulatory deadline: 2027-01-01 (UK PRA PS1/26 Basel 3.1 go-live — January 1, 2027). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: sim-03-basel-rwa-scenario-modeler, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-07-basel31-reporting-delta-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds real value: compute-mode semantics (auto/server/browser, gpu:true always delegates), transient processing with no storage/logging, the synthetic-input constraint, and export of an AP2 artifact with execution_hash for chain provenance. These are behavioral traits not visible in the annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the name and regulatory deadline, but a large share of the text is infrastructure boilerplate (Cloudflare Workers, gpu kernels, FV-status snapshot hash URL) mixed with genuine usage constraints. It is longer than the core decision content warrants, and the long receipt hash is noise for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param tool with no output schema and a nested policy_parameters object, the description covers execution/infrastructure behavior and provenance but omits what the computed delta looks like or what the policy_parameters fields are. It is adequate but leaves the core computational contract underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description reinforces the compute-mode behavior but adds no field-level meaning for parent_hashes ordering, kernel field names, or policy_parameters contents. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a specific verb+resource ('compute ... Basel 3.1 Reporting Delta') and label it a capital_assessment compute node, so an agent knows the general area. However, the description never says what the delta actually is or what quantities the tool produces, so the purpose remains vague beyond the title. It does not differentiate itself from other Basel/compute siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states downstream consumers ('Output feeds: sim-03-basel-rwa-scenario-modeler, ptg-01-ap2-prompt-template-generator') and a regulatory deadline, but gives no guidance on when to invoke this tool versus alternatives like compute_rwa_erba_2026 or compare_basel_2023_vs_2026. It also imposes an input constraint (synthetic/anonymised only) without saying when the tool is appropriate at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_basel_haircut_adjusted_exposureCollateral Haircut Engine (Basel CRE22)C
Read-onlyIdempotent
Inspect

Collateral Haircut Engine (Basel CRE22): OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-444-collateral-haircut-engine.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
item_countNo
net_exposureNo
override_countNo
exposure_amountNo
collateral_itemsNo
exposure_adjustedNo
exposure_currencyNo
time_scale_factorNo
unclassified_countNo
holding_period_daysNo
exposure_asset_classNo
haircut_table_versionNo
collateral_adjusted_totalNo
exposure_haircut_scaled_pctNo
override_missing_reason_countNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuine extra behavior: compute:auto runs server-side on Workers for gpu:false nodes, compute:browser forces client-side and returns a delegation URL, inputs are transient and not stored/logged, and an AP2 artifact with execution_hash is exported. This is substantive operational context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It restates the name/title verbatim, buries the functional purpose, and pads with a full-length FV-status JSON URL and execution-plumbing details. Front-loading is weak — the resource the tool computes is never stated, while infrastructure boilerplate dominates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need no explanation, and the infra/execution caveats are covered. However, for a compute node the description omits what the decision function actually does and defers policy_parameters contents to an external manifest, leaving the core invocation semantics incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented. The description restates the compute-mode behavior in prose but adds nothing on policy_parameters fields ('See the tool's manifest for field names'), so the schema carries the load — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title ('Collateral Haircut Engine (Basel CRE22)') and name imply a Basel collateral haircut-adjusted exposure computation, but the description text never states the functional verb or what is computed/returned — it opens with a category label 'OpenChainGraph compute node (regulatory_reporting)' and then discusses execution plumbing. An agent gets the domain but not a functional statement of purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no when-not-to-use, and no reference to alternatives despite close siblings like calculate_repo_haircut and compute_stock_token_collateral_haircut. The only constraint offered ('Use synthetic or anonymised inputs only') is an input-hygiene rule, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_best_execution_evidence_packBest-Execution Evidence PackA
Read-onlyIdempotent
Inspect

Best-Execution Evidence Pack: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/681-best-execution-evidence-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuine extra context: transient processing with no storage/logging/retention, browser delegation URLs for compute:'browser' and gpu:true nodes, and an AP2 export carrying execution_hash for provenance. It omits error/failure behavior and rate expectations, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded, but the second half is a dense run-on mixing execution semantics, retention policy, artifact format, a marketing URL, and an FV-status snapshot paragraph whose payoff ('verifies offline') is marginal for tool selection. Several sentences could be trimmed without losing invocation-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, nested-parameter node with no output schema, the description covers execution locale, data-handling policy, required input nature, and the returned artifact's key field (execution_hash). The main gap is that it never clarifies how the resulting evidence pack differs from sibling evidence-pack tools, but otherwise it is sufficient to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, including the enum semantics. The description largely restates the compute-mode behavior already in the schema and adds no new syntax or format detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the artifact ('Best-Execution Evidence Pack'), the runtime ('OpenChainGraph compute node'), and the domain ('compliance_control'), so an agent can tell it produces a compliance evidence artifact. However, it does not differentiate from close siblings such as recompute_best_execution, build_evidence_pack, or assemble_ocg_evidence_bundle, leaving the agent to guess which evidence-pack producer to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute-mode paragraph implies when server vs browser execution runs, and 'Use synthetic or anonymised inputs only' is an explicit input constraint. But there is no statement of when to choose this tool over its evidence-pack siblings, nor any prerequisite or exclusion guidance, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_bond_durationBond Macaulay / Modified DurationB
Read-onlyIdempotent
Inspect

Bond Macaulay / Modified Duration: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-330-tvm-dv01, art-331-tvm-convexity. Open at: https://ainumbers.co/chaingraph/art-329-tvm-bond-duration.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
priceNo
ytm_pctNo
face_valueNo
num_periodsNo
coupon_rate_pctNo
periods_per_yearNo
regulatory_basisNo
years_to_maturityNo
day_count_conventionNo
macaulay_duration_yearsNo
modified_duration_yearsNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description earns credit for the extra operational context it adds: server-side vs browser delegation semantics for gpu:false/gpu:true nodes, transient processing with no storage/logging/retention, the 'synthetic or anonymised inputs only' constraint, and the AP2 artifact/execution_hash provenance export with an offline-verifiable FV receipt. That is genuinely useful behaviour an agent cannot infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence front-loads identity, but the body is dense infrastructure boilerplate ending in a long URL and a 64-character FV-status hash with a 'snapshot, not a subscription' caveat that consumes space without helping selection or invocation. Several sentences repeat the same transient/chain-provenance idea.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no prose, and the description covers execution mode, input handling, and chaining/provenance. The one real gap is the actual computational subject and its decision inputs — policy_parameters defers to an external manifest, so an agent still cannot tell what fields to supply for a duration calculation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's explanation of compute:'auto'/'browser' only re-narrates what the compute parameter description already says, and it adds nothing about parent_hashes/parent_tool_ids pairing or the opaque policy_parameters object (whose field names live in an external manifest).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The definition never states in its own words what the computation takes or produces — it leans on the title (Macaulay / Modified Duration) and restates it as 'OpenChainGraph compute node (analytics_mandate)'. The downstream pointers (art-330-tvm-dv01, art-331-tvm-convexity) hint at the domain, but an agent gets no explicit 'computes duration from bond cash flows' statement, and no differentiation from siblings like compute_convexity or compute_dv01.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not guidance and no routing to alternatives among the many compute_* siblings. The only conditional logic is about compute transport mode, which is execution mechanics rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_breakevenBreakeven / CVP AnalysisB
Read-onlyIdempotent
Inspect

Breakeven / CVP Analysis: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-328-tvm-breakeven.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
fixed_costsNo
price_per_unitNo
breakeven_unitsNo
regulatory_basisNo
breakeven_revenueNo
unit_contributionNo
margin_of_safety_pctNo
margin_of_safety_unitsNo
variable_cost_per_unitNo
contribution_margin_ratioNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Going beyond the annotations (which only cover readOnly/idempotent/non-destructive/closed-world), the description discloses that inputs are processed transiently and not stored, logged, or retained, that results are exported as an AP2 artifact carrying execution_hash, and that gpu:true nodes always delegate to the browser. The FV-status receipt being 'a snapshot, not a subscription' that verifies offline is also non-obvious behavior. Some of this is infrastructure boilerplate rather than tool-specific behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense single block that front-loads infrastructure boilerplate (node type, compute binding, retention) before anything about the analysis itself. The long FV-status hash URL and the 'snapshot, not a subscription / verifies offline' aside consume space disproportionate to their selection value, while the core function goes unstated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the safety profile and an output schema exists, so return values need not be explained. However, with a 4-param nested-object input and no output description, the omission of what policy_parameters should contain beyond 'see the manifest' leaves an agent without enough to invoke the analytics meaningfully, which is a real gap even if the infrastructure story is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; baseline 3 applies. The description restates the compute-mode semantics but adds nothing about ordering/meaning of parent_hashes or the expected field names inside policy_parameters – it explicitly defers those to 'the tool's manifest.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title state a specific verb+resource ('Breakeven / CVP Analysis'), but the description body only says it is an 'OpenChainGraph compute node (analytics_mandate)' and a 'Deterministic OpenChainGraph compute node' – it never says what breakeven/CVP quantities it actually computes (contribution margin, breakeven units, margin of safety). It also draws no boundary against the many sibling compute_* tools like compute_npv or compute_irr.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternatives. The only routing information concerns execution mode (compute:"auto"/"server"/"browser"), which is about how the node runs, not about when an agent should pick this tool over another analytics node.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_canton_app_reward_estimateCanton App-Reward Estimator (CIP-0104)C
Read-onlyIdempotent
Inspect

Canton App-Reward Estimator (CIP-0104): OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-392-compute-canton-app-reward-estimate.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
disambiguationNo
protocol_versionNo
pool_share_sourceNo
app_reward_pool_ccNo
cc_reward_estimateNo
round_total_mint_ccNo
app_reward_pool_shareNo
confirmed_envelope_bytesNo
confirmed_share_of_trafficNo
round_total_envelope_bytesNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description goes beyond them with real behavioral context: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, a browser delegation URL is returned under compute:'browser', and an AP2 artifact with execution_hash is exported for provenance. The data-handling and provenance disclosures are exactly the kind of value annotations can't carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the title, which is good, but the body spends sentences restating the compute-mode semantics already in the schema and ends with an FV-status URL and hash that an invoking agent cannot act on. The AST/provenance notions (AP2, execution_hash) earn their place; the receipt-file URL largely does not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema and annotations are rich, and the description covers execution modes and data handling, so the safety story is complete. However, for a domain estimator it never says what the estimate represents or how to populate policy_parameters — the schema itself punts to 'the tool's manifest', and the description does not compensate for that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's explanation of compute modes duplicates what the schema already documents verbatim, and it adds nothing about policy_parameters or the parent_hashes/parent_tool_ids ordering contract, which are the semantically rich parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description's opening sentence is a verbatim restatement of the title ('Canton App-Reward Estimator (CIP-0104)') and then falls into platform boilerplate ('OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node.'). It never states what the estimator actually computes — reward amounts, accrual period, or the CIP-0104 domain inputs — and does nothing to separate it from siblings like compute_canton_traffic_cost or diagnose_canton_readiness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to choose this tool versus the many other Canton/ChainGraph compute tools in the sibling list. The only conditional text concerns the 'compute' parameter (auto/server/browser), which is execution routing, not tool selection. An agent gets no signal about prerequisites or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_canton_traffic_costCanton Synchronizer Traffic-Cost CalculatorC
Read-onlyIdempotent
Inspect

Canton Synchronizer Traffic-Cost Calculator: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-391-compute-canton-traffic-cost.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cc_burnedNo
envelope_mbNo
rate_sourceNo
cc_usd_priceNo
disambiguationNo
rate_usd_per_mbNo
free_period_daysNo
protocol_versionNo
usd_traffic_costNo
free_period_sourceNo
free_period_appliesNo
preapproval_age_daysNo
is_transfer_preapprovalNo
effective_rate_usd_per_mbNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses meaningful traits: deterministic execution, transient input handling with no storage, logging or retention, a synthetic-inputs-only constraint, and that gpu:true nodes always return a browser delegation URL instead of a result. It also notes an AP2 artifact with execution_hash is exported for provenance. These are genuinely useful and not derivable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening repeats the title and then restates 'Deterministic OpenChainGraph compute node' immediately after 'OpenChainGraph compute node', adding no information. A long FV-status URL with a full 64-hex hash is inlined, and compute-mode behavior plus provenance/exports are interleaved, so the core purpose is buried rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but the description never states what the traffic-cost computation consumes or produces semantically, and policy_parameters is delegated to an off-tool manifest. For a decision-function compute node this leaves the primary content gap unfilled despite the otherwise rich infrastructure detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail and the description largely repeats the compute-mode text. Critically, the description defers policy_parameters field names to an external manifest ('See the tool's manifest for field names'), so the decision-function inputs remain opaque; baseline 3 is appropriate, no better.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify a specific verb+resource (Canton synchronizer traffic-cost computation), and the description ties it to the 'analytics_mandate' OpenChainGraph family. However, the description never explains what the traffic-cost decision function actually computes or what the domain inputs represent; it is dominated by compute-plumbing boilerplate, so an agent learns the topic but not the function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no sibling alternatives named, even though siblings like compute_canton_app_reward_estimate and diagnose_canton_readiness sit adjacent. The only selection guidance concerns compute modes ('auto' vs 'browser'), which is parameter behavior rather than usage context for the tool itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_cdd_ownership_25pctFinCEN CDD 25% Beneficial Ownership AttributionB
Read-onlyIdempotent
Inspect

FinCEN CDD 25% Beneficial Ownership Attribution: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-269-validate-w8-series-structural. Open at: https://ainumbers.co/chaingraph/art-268-compute-cdd-ownership-25pct.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
methodologyNo
regime_noteNo
table_sourceNo
table_versionNo
threshold_pctNo
below_thresholdNo
not_legal_adviceNo
regulatory_basisNo
beneficial_ownersNo
entities_evaluatedNo
is_beneficial_ownerNo
below_threshold_countNo
beneficial_owner_countNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely useful behavioral context beyond them: transient processing with no storage/logging/retention, a requirement to use synthetic or anonymised inputs, the emission of an AP2 artifact with execution_hash, and server-vs-browser execution semantics. This is substantive disclosure not present in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is reasonably front-loaded, but the text is dense with infrastructure detail that partly duplicates the compute schema, plus a raw URL and a long inline FV-status hash. Several sentences could be trimmed without losing agent-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and annotations already present, the description need not explain return values, and it covers execution environment and provenance adequately. However, for a domain-specific compliance computation it never explains what the 25% ownership attribution evaluates or what policy_parameters it expects, leaving the core decision logic opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute modes that the schema already defines but adds nothing about how to populate policy_parameters (deferring to 'the tool's manifest'). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with the tool identity (FinCEN CDD 25% Beneficial Ownership Attribution) but never explains what the computation actually produces beyond the title, instead spending most of its length on infrastructure boilerplate. It does not distinguish this node from the many sibling compute_* / ownership tools (e.g. aggregate_ownership_50pct). Purpose is inferable from name+title but not elaborated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance versus alternatives. The only routing hint is the downstream 'Output feeds: art-269-validate-w8-series-structural' line, which tells the agent where output goes rather than when to select this tool. No exclusions or sibling comparisons are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_cfpb_1071_coverageCFPB 1071 Coverage Check & SBLAR Record ValidatorC
Read-onlyIdempotent
Inspect

CFPB 1071 Coverage Check & SBLAR Record Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-475-cfpb-1071-coverage-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
coveredNo
thresholdNo
sblar_recordsNo
sblar_summaryNo
compliance_datesNo
regulatory_basisNo
required_sblar_fieldsNo
originations_year1_countNo
originations_year2_countNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description does add genuine behavioral context beyond that — transient server-side processing with no storage/logging/retention, the AP2 execution_hash export for chain provenance, and the compute-mode delegation rules — but this is generic node boilerplate that recurs across the family and duplicates the compute parameter schema. It never discloses domain-specific behavior of the coverage computation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated and repetitive — 'Deterministic OpenChainGraph compute node' is essentially stated twice — and pads the body with a raw URL and a 64-character hash that consume space without helping an agent invoke the tool. Front-loading is only nominal since the useful domain content never appears.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is fully described, so return-value and parameter documentation burdens are lightened. However, for a domain-specific compliance tool the description never states what coverage determination is produced or what the SBLAR validation checks, so an agent lacks the substantive context needed to select and trust this tool over its many compliance siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema; baseline is 3. The description adds nothing further and even defers the actual decision inputs to an external manifest ('See the tool's manifest for field names'), leaving policy_parameters opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title ('CFPB 1071 Coverage Check & SBLAR Record Validator') and identifies itself as a 'compute node (compliance_mandate)' without ever explaining what CFPB 1071 coverage checking or SBLAR record validation actually does for the caller. It spends its sentences on OpenChainGraph infrastructure rather than the domain action, so an agent cannot tell from the text what this tool computes or how it differs from sibling compliance checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. The only conditional language concerns execution placement (compute:auto vs browser), which is about infrastructure, not about when a 1071 coverage assessment is warranted. No alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_consolidation_ctaConsolidation with CTA and Minority InterestC
Read-onlyIdempotent
Inspect

Consolidation with CTA and Minority Interest: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/683-consolidation-cta-minority-interest.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real behavioral context beyond them: inputs are processed transiently and not stored or logged, compute:auto vs browser changes execution location and can return a delegation URL, gpu:true always delegates, and the tool exports an AP2 artifact carrying execution_hash. These are meaningful operational traits for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is mentioned first but is immediately buried under long generic platform boilerplate (compute-mode mechanics, privacy statement, AP2 export, an external URL, and a long FV-status hash link) that is identical across sibling compute nodes and adds no tool-specific value. Value density is poor for the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-param compute node with no output schema, the description covers execution modes and artifact emission, which is adequate. However the result shape is unspecified and policy_parameters is left entirely opaque ('See the tool's manifest for field names'), so an agent cannot know what to pass or what comes back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats the compute-mode semantics already fully documented in the schema and adds nothing about parent_hashes, parent_tool_ids, or the opaque policy_parameters beyond deferring to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the title ('Consolidation with CTA and Minority Interest') and labels it an 'OpenChainGraph compute node (compliance_mandate)', then pivots to generic platform boilerplate. It never explains what the consolidation computation actually does, what inputs it consumes, or what result it produces. An agent cannot distinguish this from the many other compute_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no routing to alternatives among the numerous sibling compute/consolidation tools. The only directive is 'Use synthetic or anonymised inputs only', which is a data-safety constraint, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_consultation_response_trackerConsultation Response TrackerC
Read-onlyIdempotent
Inspect

Consultation Response Tracker: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/678-consultation-response-tracker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely useful traits beyond that: deterministic execution, transient processing with no storage or logging, a 'use synthetic or anonymised inputs only' constraint, and an AP2 artifact export carrying execution_hash for provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The privacy and determinism statements are front-loaded enough to be useful, but the tail (site URL plus a full 64-character FV-status hash path) is metadata of marginal value to an agent selecting a tool. Roughly half the text is chain-provenance ceremony rather than tool identity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description never explains what the decision function computes or what a response looks like. For a compute node with a nested, open-ended policy_parameters object, an agent lacks the domain detail needed to call it meaningfully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats the compute:auto/server/browser semantics already present in the schema and offers no additional field names for policy_parameters, merely deferring to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Consultation Response Tracker') and labels the node as an 'analytics_mandate' OpenChainGraph compute node, but never states in functional terms what it computes about consultation responses. An agent cannot tell what domain question this tool answers or how it differs from the many sibling compute_* analytics nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus siblings, what inputs it expects, or what conditions make it the right choice. The only routing information concerns compute:

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_control_attestation_campaign_roll_upControl Attestation Campaign Roll UpC
Read-onlyIdempotent
Inspect

Control Attestation Campaign Roll Up: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/680-control-attestation-campaign-roll-up.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior: transient processing with no storage/logging/retention, GPU nodes always delegating to browser, and that it exports an AP2 artifact carrying execution_hash for chain provenance. This is real context beyond the annotations, though return format/pagination is still unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with a title restatement and infrastructure text, then padded with a landing-page URL and a long raw hash embedded in an FV-status URL. A large share of the text is provenance noise rather than actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested policy_parameters object, no output schema, and no explanation of the decision function, the description defers field discovery to 'the tool's manifest'. It never tells the agent what inputs mean or what the AP2 artifact contains, leaving the core computation opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters including the compute enum and parent_hashes/parent_tool_ids chaining semantics. The description re-states the compute-mode behavior but adds nothing new about parameter meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (compliance_control)' and repeats the title, but never states what 'control attestation campaign roll up' actually computes. Everything after the first clause is infrastructure boilerplate (compute modes, hosting), so an agent cannot tell what domain result this produces or how it differs from the ~40 other 'compute_*' siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to alternatives; the only selection advice is about the 'compute' parameter (auto/server/browser), which is invocation mechanics, not tool choice. 'Use synthetic or anonymised inputs only' is a constraint, not a routing guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_convexityBond ConvexityA
Read-onlyIdempotent
Inspect

Bond Convexity: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-329-tvm-bond-duration. Open at: https://ainumbers.co/chaingraph/art-331-tvm-convexity.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
priceNo
ytm_pctNo
convexityNo
face_valueNo
num_periodsNo
coupon_rate_pctNo
periods_per_yearNo
regulatory_basisNo
years_to_maturityNo
convexity_price_adjustment_pctNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the readOnly/idempotent/non-destructive profile, and the description still adds substantive context beyond them: transient input processing with no storage or logging, deterministic execution, server-vs-browser delegation behavior, and export of an AP2 artifact carrying execution_hash for chain provenance. That is genuine behavioral disclosure the structured fields do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the identity and key constraints, but wastes space on a near-duplicate opening ("OpenChainGraph compute node" immediately followed by "Deterministic OpenChainGraph compute node") and buries a long FV-status URL and hash in the body. Several sentences could be tightened without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description needn't explain return values, and it covers the unusual bits an agent would otherwise miss: upstream artifact consumption, provenance export, and the non-retention guarantee. It falls short only on the analytic inputs themselves (what policy_parameters fields drive convexity) and on chaining prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute modes rather than adding new meaning, and says nothing about the ordering/pairing of parent_hashes and parent_tool_ids or the shape of policy_parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific analytic (Bond Convexity) and frames it as an OpenChainGraph compute node with a named upstream dependency (art-329-tvm-bond-duration), which distinguishes it from generic siblings like compute_bond_duration. It never actually says what convexity is computed from or what the decision function takes, so the analytic semantics remain underspecified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real operational guidance (compute:"auto" vs "browser", gpu:true delegation) and a hard constraint ("Use synthetic or anonymised inputs only"), plus names the artifact it consumes. However there is no guidance on when to choose this tool over compute_bond_duration or the other chain-analytics siblings, and no prerequisite statement about needing parent_hashes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_counterparty_limit_checkCounterparty Internal Limit CheckB
Read-onlyIdempotent
Inspect

Counterparty Internal Limit Check: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-446-counterparty-internal-limit-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
breach_listNo
warning_listNo
counterpartiesNo
regulatory_basisNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the safety annotations, the description discloses meaningful behavior: the compute mode semantics (auto/server/browser), browser delegation, an execution_hash-bearing AP2 export for chaining, and explicit transient processing with no storage, logging, or retention. These are real operational traits an agent needs and are not derivable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the purpose before infrastructure details, which is good, but it is bloated by a long opaque FV-status hash and receipt boilerplate that competes with the actionable content. The compute-mode discussion is useful; the URL and full digest are largely noise for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and parameters are fully covered by the schema. However, for a domain-specific compliance computation the description leaves the actual decision logic opaque and defers input field names to an external manifest, so an agent still cannot fully predict the tool's result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids, and policy_parameters are already documented in the schema. The description adds nothing to parameter meaning and explicitly punts on the decision inputs by pointing to an external manifest, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line identify a specific resource (counterparty internal limit check) and frame it as a compute node, but the body never explains what the check actually determines or what decision it produces. It is distinguishable from siblings only by name, not by any described behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no comparison to adjacent tools such as compute_large_exposures_limit or check_credit_concentration_topn_sector. The only usage constraint given is 'use synthetic or anonymised inputs only', which is a data-handling rule rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_cross_border_feesCross-Border B2B Fee CalculatorC
Read-onlyIdempotent
Inspect

Cross-Border B2B Fee Calculator: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-367-compute-cross-border-fees.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fx_costNo
doc_costNo
vat_costNo
vat_rateNo
method_feeNo
recon_costNo
total_costNo
dest_countryNo
fx_spread_bpsNo
disambiguationNo
invoice_amountNo
origin_countryNo
pct_of_invoiceNo
regulatory_basisNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, but the description adds real behavioral context beyond them: transient processing with no storage/logging/retention, a 'use synthetic or anonymised inputs only' constraint, browser-delegation behavior for gpu:true nodes, and an AP2 artifact export with execution_hash. Those are material operational facts an agent must know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is verbose and front-loads internal spec nomenclature instead of the tool's purpose, and it closes with a URL plus a 64-character FV-status hash and a note about snapshot verification that is irrelevant to selecting or invoking the tool. Several sentences do not earn their place for an agent's decision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute/parent-hash chaining semantics are covered. However, the core purpose remains unstated and the content of policy_parameters — the only domain inputs — is delegated to an external manifest, leaving the agent unable to know what to pass without leaving the definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The compute-mode sentence duplicates the schema's own parameter description, and policy_parameters (the actual decision inputs) is deferred with 'See the tool's manifest for field names' — an external reference that adds no in-band meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what fee is actually computed — cross-border B2B fees are conveyed only via the name/title, and the opening line ('OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node.') is a spec-code restatement. Most of the text describes execution infrastructure (compute modes, provenance) rather than the tool's computational purpose, so an agent learns little about what decision function it runs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on selecting the compute mode (auto/server/browser), but that is parameter-level behavior, not guidance on when to choose this tool over siblings like compare_corridor_cost or model_stablecoin_corridor_economics. No when-to-use, when-not-to-use, or alternative-tool routing is provided anywhere.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_custody_segregation_ratioCustody Segregation RatioB
Read-onlyIdempotent
Inspect

Custody Segregation Ratio: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-538-custody-segregation-ratio.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
statusNo
formulaNo
line_itemsNo
segregation_ratioNo
total_claims_musdNo
total_segregated_musdNo
over_segregation_ceilingNo
custody_location_breakdownNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description still adds real behavioral context beyond that: inputs are processed transiently and not stored or logged, gpu:true nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for chain provenance. It does not say whether the computation is expensive or rate-limited.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The name is front-loaded, but the body is boilerplate-heavy and the closing FV-status paragraph with a long hash URL and a note about snapshot verification is tangential to invoking the tool. Several sentences could be trimmed without losing invocation-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% schema coverage, the description needn't explain return values, and it does cover compute behavior and privacy. What is missing is the domain core — what the custody segregation ratio is, what policy_parameters fields mean, and any input expectations — for a tool whose entire value is that computation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode text largely mirrors the schema's own enum description and defers policy_parameters field names to the manifest, adding little beyond structured fields. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title give a specific resource (custody segregation ratio), but the description itself spends its sentences on compute-node infrastructure (compute modes, transient processing, AP2 export) rather than stating what ratio is computed or from which inputs. An agent learns it is an OpenChainGraph compliance compute node, not what the metric measures, so it cannot distinguish this from other compute nodes without opening the manifest.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode mechanics ('auto'/'server'/'browser') but gives no when-to-use guidance, no exclusions, and no pointer to a sibling or alternative for custody/segregation metrics. The only actionable constraint is 'use synthetic or anonymised inputs only', which is a data-hygiene note rather than usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_cyber_incident_notification_clockCyber Incident Notification ClockB
Read-onlyIdempotent
Inspect

Cyber Incident Notification Clock: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-428-cyber-incident-clock.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
incident_idNo
evaluated_atNo
determinationsNo
determination_atNo
determination_at_parsedNo
determination_evidence_hashNo
determination_evidence_hash_well_formedNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already declare read-only/idempotent/non-destructive), the description discloses meaningful execution behavior: the compute:'auto'/'server'/'browser' dispatch rules, that gpu:true nodes always delegate to the browser, that inputs are processed transiently and not stored or logged, and that the export carries an execution_hash for chain provenance. It also correctly qualifies the FV-status link as a static snapshot rather than a live subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The name is front-loaded and the sentences are individually clean, but a large share of the text is platform boilerplate (compute binding, artifact export, a long hashed FV-status URL) rather than tool-specific information, which dilutes the agent-relevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the runtime/attestation contract is well covered. However, for a zero-required-parameter compute node whose entire value is the domain calculation, the absence of any statement about what the notification clock measures leaves a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode semantics (duplicating the schema) but adds nothing about chaining order or which policy_parameters fields apply, deferring to 'the tool's manifest'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title states a specific verb+resource ('compute ... clock') and the description identifies it as an OpenChainGraph compute node of type attestation_mandate, but it never explains what the clock actually computes (which notification deadline, under which regime). An agent cannot distinguish it in substance from siblings like classify_dora_ict_incident_and_clock_deadlines or compute_whistleblowing_channel_clock without opening the artifact page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative among the many adjacent clock/incident-deadline tools. The only directive is a data-hygiene constraint ('Use synthetic or anonymised inputs only'), which is a constraint, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_derivatives_margin_workbenchDerivatives Margin WorkbenchB
Read-onlyIdempotent
Inspect

Derivatives Margin Workbench: OpenChainGraph compute node (derivatives_margin_health). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/656-derivatives-margin-workbench.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description adds genuinely useful context: transient processing with no storage/logging, the requirement for synthetic or anonymised inputs, and the AP2 artifact with execution_hash for chain provenance. It does not define the actual computation semantics, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavioral facts are front-loaded, but the paragraph is padded with boilerplate ('Deterministic OpenChainGraph compute node'), a raw URL, and a long FV-status receipt URL that consumes space without helping an agent invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and an opaque nested policy_parameters object whose field names live in an external manifest, an agent cannot determine what inputs the decision function needs. The compute-mode and provenance behavior are covered, but the substantive input surface is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description adds nothing parameter-specific (policy_parameters fields are deferred to an external manifest), so this lands at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names itself as an 'OpenChainGraph compute node (derivatives_margin_health)', which implies derivatives margin computation, but it never states what is actually computed or returned. Against ~200 compute_*/recompute_* siblings, there is no differentiation beyond the node identifier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is about compute mode selection (server vs browser), which duplicates the schema enum. There is no statement of when to reach for this tool versus sibling margin tools like compute_perp_margin, estimate_cross_margin_benefit, or mobilize_margin_collateral.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_deterministic_amortization_scheduleDeterministic Amortization ScheduleC
Read-onlyIdempotent
Inspect

Deterministic Amortization Schedule: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-626-deterministic-amortization-schedule.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
boundsNo
scheduleNo
conventionNo
final_plugNo
rate_solveNo
remeasurementNo
rounding_stepsNo
day_count_sourceNo
periods_per_yearNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, but the description adds meaningful context beyond them: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, execution is deterministic, and an AP2 artifact with execution_hash is exported for chain provenance. These are genuine behavioral disclosures not present in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A dense run-on mixing hosting architecture, retention policy, artifact export, a deep link, and a raw FV-status hash. The functional purpose is neither front-loaded nor present, so the structure obscures rather than orients.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a compute tool with nested policy_parameters and zero required fields, the description should say what the amortization computation consumes and produces. Instead it covers only platform mechanics, leaving the core semantics to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute enum is fully documented in the schema, so the description repeats existing information rather than extending it. It offers no detail on the policy_parameters object beyond pointing at a manifest, so nothing is added over the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the tool actually computes functionally — an amortization schedule from policy_parameters. It opens with the title restated, then pivots entirely to ChainGraph infrastructure (compute node, mandate class). An agent learns the hosting mechanics but not the decision function, and no sibling (e.g. build_amortization_schedule) is named or contrasted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no exclusions or alternative tools. The only selection guidance concerns the 'compute' parameter routing, which is schema material rather than tool-selection context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_direct_indexing_fit_screenDirect Indexing Fit ScreenB
Read-onlyIdempotent
Inspect

Direct Indexing Fit Screen: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-685-direct-indexing-fit-screen.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile, yet the description still adds real value: server-side execution on Cloudflare Workers, browser delegation URL behavior, gpu:true always delegating, transient non-retained inputs, a synthetic-inputs-only constraint, and AP2 artifact emission with execution_hash. That is well beyond what readOnlyHint/idempotentHint convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and compute semantics are front-loaded, but the trailing URL and the long FV-status hash snapshot sentence are boilerplate noise that a caller gains little from. Overall medium length with some sentences that do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compute node with no output schema, the description adequately covers execution modes, privacy, and artifact export, but leaves the actual screening subject and any result shape unspecified. An agent knows how to call it but not what it will tell them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute modes and mentions chaining/manifest lookup, adding only marginal meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies it as an OpenChainGraph compute node for a 'compliance_control' decision function, but never says what the Direct Indexing fit screen actually evaluates or returns. It does not distinguish this fit screen from siblings like run_agent_economy_fit or run_ai_act_highrisk_fit. The verb/resource is present only in boilerplate form.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is detailed guidance on the compute mode parameter (auto/server/browser), but nothing on when to call this tool versus the many other *_fit and run_*_fit_diagnostic siblings. No prerequisites or exclusions are stated for the tool as a whole.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_discount_window_capacityDiscount Window Borrowing-Capacity CalculatorB
Read-onlyIdempotent
Inspect

Discount Window Borrowing-Capacity Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-427-discount-window-capacity.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
coverage_pctNo
capacity_compliantNo
coverage_target_pctNo
lendable_value_musdNo
margin_table_versionNo
collateral_par_value_musdNo
runnable_liabilities_musdNo
capacity_surplus_shortfall_musdNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive, closed-world), the description discloses that inputs are processed transiently and not stored, logged or retained, that execution may be server-side or delegated to the browser, and that an AP2 artifact with execution_hash is exported for provenance. These are real behavioral facts the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Identity is front-loaded and the compute/privacy facts are useful, but the string is padded with a duplicated 'Deterministic OpenChainGraph compute node' framing, two long URLs, and a 64-hex FV-status receipt hash that consumes attention without helping an agent decide whether to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety and an output schema covering return shape, the description supplies the remaining essentials: execution routing, data-retention posture, and provenance artifact. Only the actual decision-function semantics of policy_parameters remain undocumented, which is deferred to a manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute modes but adds nothing about policy_parameters beyond 'see the tool's manifest,' which the schema already says — baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The functional purpose ('discount window borrowing-capacity') lives in the title, while the description body only says it is an 'OpenChainGraph compute node (compliance_mandate)' — generic boilerplate that would read identically on any of the hundreds of sibling compute nodes. An agent must rely on the name/title to learn what is actually computed, and the domain calculation is never described.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives genuine invocation guidance for compute:'auto' vs 'server' vs 'browser' and the gpu:true delegation rule, plus a synthetic-inputs-only constraint. However there is no guidance on when to choose this discount-window tool over related capacity/liquidity siblings, so tool selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_disparity_metricsCompute Disparate Impact MetricsB
Read-onlyIdempotent
Inspect

Compute Disparate Impact Metrics: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-230-compute-hmda-rate-spread. Open at: https://ainumbers.co/chaingraph/art-229-compute-disparity-metrics.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
group_aNo
group_bNo
n_totalNo
pii_noteNo
odds_ratioNo
table_sourceNo
table_versionNo
four_fifths_flagNo
regulatory_basisNo
two_proportion_zNo
pooled_proportionNo
four_fifths_resultNo
adverse_impact_ratioNo
four_fifths_thresholdNo
zero_pii_confirmationNo
z_critical_flag_onetail_05No
z_critical_flag_twotail_05No
standardized_mean_differenceNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, closed-world. The description adds meaningful traits beyond them: inputs are processed transiently and never stored/logged/retained, a browser delegation URL is returned under compute:"browser", and the node exports an AP2 artifact carrying execution_hash. That is substantive behavioral disclosure for a mutation-free compute tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads a title restatement, then buries the useful content (transient processing, artifact export) inside platform boilerplate. The FV-status sentence, complete with a 64-character hash and the "snapshot, not a subscription ... verifies offline" clause, is noise for a calling agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter node with 100% schema coverage, annotations, and an output schema, the description covers compute routing, data-handling guarantees, provenance chaining, and the upstream artifact dependency. The remaining gap is substantive purpose (what the metrics compute), which the output schema partly absorbs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's compute-mode explanation duplicates the schema's own enum description almost verbatim, and policy_parameters is deferred to "the tool's manifest" with no field detail added. No net value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence largely restates the title plus a platform classification ("OpenChainGraph compute node (compliance_mandate)"), and nothing in the body explains what a disparate-impact metric actually is or how it differs from near-neighbours like test_bifsg_bias_thresholds. The only genuine domain signal is the upstream artifact (art-230-compute-hmda-rate-spread), which implies the HMDA lending context. Purpose is inferable from the name, not established by the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a real constraint — "Use synthetic or anonymised inputs only" — and a routing rule for compute mode (auto/server/browser, gpu:true always delegates). But it never says when to pick this tool over its many compute_* and bias-testing siblings, so task-selection guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_dora_roi_gleif_preflight_packDora Roi Gleif Preflight PackB
Read-onlyIdempotent
Inspect

Dora Roi Gleif Preflight Pack: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-466-dora-roi-builder, art-599-gleif-snapshot-digest, art-600-lei-relationship-consistency. Open at: https://ainumbers.co/chaingraph/art-601-dora-roi-gleif-preflight-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
rollupNo
scope_noteNo
attestationNo
counterpartiesNo
counterparty_countNo
dora_roi_artifact_refNo

TDQS

B3.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses server-side versus browser execution, gpu:true delegation behavior, transient input processing with no storage/logging/retention, the synthetic-input constraint, AP2 artifact export with execution_hash, chain provenance, and an offline-verifiable FV-status receipt. This is rich behavioral context with no contradiction of the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with category and execution details, but the first two sentences redundantly repeat 'OpenChainGraph compute node' and the FV-status paragraph is dense with receipt metadata. It is serviceable but not tightly economical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations, 100% schema coverage, and an output schema, the description supplies the important invocation context: compute modes, privacy behavior, upstream dependencies, artifact export, and provenance verification. The missing piece is what the decision function actually does, but most operational context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented. The description repeats the compute-mode semantics and points to the manifest for policy_parameters, but adds no material meaning beyond the schema for parent_hashes or parent_tool_ids.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as a deterministic OpenChainGraph compute node in the compliance_control category and names upstream artifacts, but it never states what the DORA ROI GLEIF preflight actually computes. It is more specific than a bare tautology, yet the core decision function remains opaque.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists the upstream artifacts it consumes, which implies an ordering constraint, but it does not say when to use this tool versus alternatives or what conditions make this the right node to run. The compute-mode guidance is about execution mechanics, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_dscrDSCR & Interest Coverage Ratio CalculatorB
Read-onlyIdempotent
Inspect

DSCR & Interest Coverage Ratio Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-363-compute-dscr.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fccrNo
noteNo
fcf_dscrNo
cash_dscrNo
basic_dscrNo
net_leverageNo
gross_leverageNo
icr_ebit_basisNo
icr_ebitda_basisNo
regulatory_basisNo
lender_assessmentNo
total_debt_service_musdNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely new behavioral facts: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs only, deterministic output, and that compute:'browser' returns a delegation URL instead of a result. It also discloses that an AP2 artifact with execution_hash is exported for chain provenance. Missing only error/rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with name/purpose, then compute semantics, privacy, artifact export, and a verification pointer — each sentence does a job. It loses a little to duplication of the `compute` description and an over-long trailing FV-status sentence with an embedded URL.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and annotations plus the description cover the safety and provenance profile well. The remaining hole is substantive: an agent still cannot know what inputs to pass for the actual DSCR/ICR calculation, since policy_parameters is punted to an external manifest. Adequate for a compute node in this family, but not self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents `compute`, `parent_hashes`, `parent_tool_ids`, and `policy_parameters`; the description's restatement of compute modes duplicates rather than extends it. Critically, it does not reveal any policy_parameters field names (deferring to 'the tool's manifest'), so the actual DSCR inputs remain opaque. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The definition names a specific computation (DSCR & Interest Coverage Ratio) and classifies itself as a deterministic OpenChainGraph compute node, so an agent can tell it apart from siblings like compute_dti_ratios or compute_ltv_ratios by resource. However, it never explains what the ratio is derived from or what it produces beyond the artifact, leaning on the title for purpose. Clear but with no real sibling differentiation or domain elaboration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to reach for this tool versus the many alternate ratio/solvency calculators in the sibling list. The only conditional language concerns the `compute` mode parameter (auto vs browser), which is invocation mechanics rather than tool-selection guidance. No preconditions, no exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_dti_ratiosDTI Ratio CalculatorC
Read-onlyIdempotent
Inspect

DTI Ratio Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-222-agency-eligibility-matrix. Open at: https://ainumbers.co/chaingraph/art-335-compute-dti-ratios.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
dti_tierNo
within_maxNo
max_dti_pctNo
back_end_dti_pctNo
regulatory_basisNo
front_end_dti_pctNo
underwriting_typeNo
total_monthly_debtNo
other_monthly_debtsNo
gross_monthly_incomeNo
housing_payment_pitiaNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, but the description adds real behavioral context beyond them: transient processing with no storage/logging/retention, AP2 artifact export with execution_hash for chain provenance, and the auto/server/browser delegation semantics including gpu:true always delegating to the browser. A downstream routing hint (feeds art-222-agency-eligibility-matrix) is also included.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure boilerplate—compute-mode mechanics, artifact provenance, a full sha256 FV-status hash and a URL—while the substantive purpose is a single clause. It is not front-loaded on what the tool computes and contains material (receipt hashes) that does not help an agent decide or invoke.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return-value explanation is not required, and the compute-mode/delegation behavior plus the no-retention policy are covered. However, for a compute node the description omits the decision function's actual inputs and semantics, leaving the agent unable to construct a meaningful policy_parameters payload without outside documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is reported at 100%, but the params that actually matter for a DTI computation live inside the opaque 'policy_parameters' object, whose description defers to 'the tool's manifest for field names' and whose schema allows any property. Neither the schema nor the description names debt, income, or ratio fields, so the description does not compensate for this black box despite the claimed coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('DTI Ratio Calculator', 'compute node') but the opening is largely a restatement of the name plus a framework tag ('compliance_mandate'). It never says what a DTI ratio computation entails or how it differs from close siblings like compute_ltv_ratios or compute_dscr. An agent can identify the domain but not the specific scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no routing against the many compute_* siblings. The only directive is the input constraint 'Use synthetic or anonymised inputs only', which is a security caveat rather than usage guidance. Nothing tells the agent when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_dv01Bond DV01 (Price Value of a Basis Point)B
Read-onlyIdempotent
Inspect

Bond DV01 (Price Value of a Basis Point): OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-329-tvm-bond-duration. Open at: https://ainumbers.co/chaingraph/art-330-tvm-dv01.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dv01No
noteNo
priceNo
methodNo
ytm_pctNo
face_valueNo
shock_size_bpNo
price_up_shockNo
coupon_rate_pctNo
periods_per_yearNo
price_down_shockNo
regulatory_basisNo
years_to_maturityNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real behavioral context beyond them: transient, non-retained input processing, deterministic server-side execution, AP2 artifact emission with execution_hash for chain provenance, consumption of upstream artifacts, and the fact that the FV-status receipt verifies offline rather than being a live subscription. Those are genuine operational traits an agent cannot infer from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded correctly with the tool's identity, but a large share of its length is infrastructure boilerplate (compute-binding mechanics, the FV-status JSON path and offline-verification claim) that is not specific to DV01 and crowds out task-relevant content. The domain sentence an agent actually needs is compressed into a parenthetical acronym expansion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the description does cover provenance chaining, execution model, and data-handling policy. The gap is the input side: for a numeric analytics node whose policy_parameters is an unspecified object, the description should orient the agent toward the expected bond inputs (face, coupon, yield, maturity, frequency) rather than pointing to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, and the description largely restates the compute-mode semantics rather than adding to them. The one place the description could add value — what fields the policy_parameters object must contain for a DV01 calculation — is deferred to 'See the tool's manifest,' leaving the core numeric inputs opaque beyond the schema's free-form object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and the opening phrase name a specific financial quantity (Bond DV01 / Price Value of a Basis Point) and place it in the analytics_mandate compute family, which is more than a bare restatement. But the description never states the actual operation — e.g. 'computes the price sensitivity of a bond to a 1bp yield move from duration and price inputs' — and offers no differentiation from the sibling compute_bond_duration other than naming art-329 as an upstream artifact. An agent gets the family and the quantity name, not the computation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance given is input hygiene ('Use synthetic or anonymised inputs only') and the compute-mode mechanics (auto/server/browser), which describe how execution happens, not when to pick this tool over compute_bond_duration, compute_convexity, or the other rate-risk siblings. No when-to-use, when-not-to-use, or alternative-tool routing is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_eba_im_model_validation_trackerEBA IM-Model Validation TrackerB
Read-onlyIdempotent
Inspect

EBA IM-Model Validation Tracker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/674-eba-im-model-validation-tracker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial context beyond the annotations: compute modes (auto/server/browser), server-side execution on Cloudflare Workers, transient non-retention of inputs, export of an AP2 artifact with execution_hash, and an offline FV-status receipt. Annotations already cover read-only, idempotent, non-destructive safety, so this extra behavioral detail is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately sized but contains redundancy ('OpenChainGraph compute node' appears twice) and ends with a long URL, hash, and FV-status sentence that is largely noise for tool selection. It front-loads identity but not the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex (nested policy_parameters, chaining inputs, compute modes) and has no output schema. The description covers execution modes and artifact export, but omits what the decision function actually computes, leaving the agent unable to judge whether this tool fits a given task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents all four parameters including compute mode, parent_hashes, parent_tool_ids, and policy_parameters. The description only restates the compute mode semantics already present in the schema and adds no new meaning beyond it, matching the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node in the compliance_mandate category and names it 'EBA IM-Model Validation Tracker', but never states what it actually computes or tracks (e.g., model validation status, deadlines, artifacts). It is largely a category label plus name restatement, so an agent cannot distinguish its purpose from siblings like assess_model_validation_status or run_model_test_battery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no named alternatives, and no conditions for choosing this tool over its many siblings. The only usage constraint is 'Use synthetic or anonymised inputs only', which is a data-handling rule rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_education_funding_gap_calculatorEducation Funding Gap CalculatorC
Read-onlyIdempotent
Inspect

Education Funding Gap Calculator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/688-education-funding-gap-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, but the description adds real behavior: transient processing with no storage, logging or retention, compute:"auto" vs "browser" delegation semantics, gpu:true always delegating, and an exported AP2 artifact carrying execution_hash. These are substantive traits beyond the annotation set and consistent with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is boilerplate ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.'), and the tail is a URL plus an inline FV-status hash receipt that no agent needs at invocation time. The actual purpose is never front-loaded, so the reader must wade through infrastructure prose to find nothing domain-specific.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four parameters including a free-form nested policy_parameters object and no output schema, the agent needs to know what the decision-function fields are — and the description defers that entirely to an off-page manifest. For a computation tool whose whole value is the input contract, this is materially incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's account of compute modes merely duplicates the schema's own enum description, and for policy_parameters it punts to an external manifest ('See the tool's manifest for field names') rather than naming the decision inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never says what the funding gap computation actually does — no formula, no domain inputs, no output semantics. It restates the name ('Education Funding Gap Calculator') and then spends the entire text on generic OpenChainGraph compute-node boilerplate. An agent learns it is a 'compute node (compliance_control)' but not what question it answers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only actionable guidance is 'Use synthetic or anonymised inputs only' and the compute-mode rules, which are generic to every node in this family. There is no when-to-use, no exclusion, and no direction to any of the hundreds of sibling tools that might be the right choice instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_escrow_analysisRESPA Aggregate Escrow AnalysisB
Read-onlyIdempotent
Inspect

RESPA Aggregate Escrow Analysis: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-235-test-hpml-escrow. Open at: https://ainumbers.co/chaingraph/art-342-compute-escrow-analysis.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
account_statusNo
cushion_targetNo
surplus_amountNo
trial_balancesNo
low_point_monthNo
shortage_amountNo
regulatory_basisNo
spread_vs_targetNo
starting_balanceNo
deficiency_amountNo
low_point_balanceNo
cushion_fraction_usedNo
monthly_escrow_paymentNo
surplus_refund_requiredNo
shortage_spread_requiredNo
new_monthly_escrow_paymentNo
total_annual_disbursementsNo
monthly_shortage_spread_amountNo
monthly_deficiency_spread_amountNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe-read profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real context: compute-mode behavior (auto/server/browser, GPU delegation), transient non-retention of inputs, AP2 artifact export with execution_hash, and upstream artifact consumption. These are genuine behavioral facts beyond the annotations, though the analytical behavior of the kernel itself is unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with the resource name, which is good, but 'OpenChainGraph compute node' is repeated almost verbatim in consecutive sentences and the tail is padded with an FV-status URL plus a 'snapshot, not a subscription' aside. Several sentences earn their place, but there is noticeable redundancy and trailing verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description thoroughly covers compute mode and provenance. What is missing is the domain substance: what the escrow analysis decides and how policy_parameters drive it. For a complex compliance compute node, the definition is infrastructure-complete but domain-shallow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description reiterates compute-mode semantics but adds nothing about policy_parameters field names (it explicitly defers to 'the tool's manifest'). With full schema coverage, baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource ('RESPA Aggregate Escrow Analysis') and frames it as a deterministic compute node, so the broad category is clear. However, it never states what the analysis actually computes (escrow balance, cushion, payment adjustments) and does not distinguish it from closely related siblings like test_hpml_escrow. The first clause merely restates the title before pivoting to infrastructure boilerplate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no alternatives are named, despite many escrow/compliance siblings existing. The only constraint given is the input-safety note 'Use synthetic or anonymised inputs only,' which is a data-handling caveat, not usage routing. An agent cannot tell from this text when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_esrp_exposureACA Employer Shared Responsibility Payment Exposure CalculatorC
Read-onlyIdempotent
Inspect

ACA Employer Shared Responsibility Payment Exposure Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-298-aca-affordability-safe-harbor. Output feeds: art-300-aca-226j-response-evidence-pack. Open at: https://ainumbers.co/chaingraph/art-299-aca-esrp-exposure.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
tax_yearNo
a_applicableNo
b_applicableNo
a_exposure_annualNo
b_exposure_annualNo
controlling_penaltyNo
coverage_offer_rateNo
offer_rate_thresholdNo
a_monthly_per_employeeNo
b_monthly_per_employeeNo
controlling_exposure_annualNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely new behavior: inputs are processed transiently and not stored/logged, synthetic inputs are mandated, the run is deterministic, and an AP2 artifact with execution_hash is exported. That is real value beyond the structured hints, though the browser-delegation mechanics are partly restated from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is buried under OpenChainGraph boilerplate, and the closing FV-status paragraph (a full SHA-256 path plus an explanation that the receipt verifies offline) is irrelevant to tool selection. The artifact chain and compute-mode details are useful but not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It is complete on chain wiring (upstream art-298, downstream art-300), compute routing, and data-handling posture, and an output schema exists so return values need not be described. It is incomplete on the substantive question of how the exposure is actually computed and what policy_parameters fields the decision function expects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics that the schema already documents and only points at 'the tool's manifest' for policy_parameters field names, adding no new meaning over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the title verbatim ('ACA Employer Shared Responsibility Payment Exposure Calculator') and tags it as a compliance_mandate compute node, so the resource is identifiable. However, it never explains what ESRP exposure actually means (IRC 4980H(a)/(b) assessment) beyond the name, and the sibling differentiation comes only indirectly from the artifact chain references.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute-mode explanation says how execution is routed (auto/server/browser) but never says when an agent should choose this tool over its many compute_* siblings or what preconditions must hold. No when-to-use or when-not-to-use guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_experience_modNCCI Experience Modification CalculatorB
Read-onlyIdempotent
Inspect

NCCI Experience Modification Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-346-compute-experience-mod.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modNo
noteNo
claim_countNo
split_pointNo
rating_classNo
ballast_valueNo
expected_lossesNo
weighting_valueNo
regulatory_basisNo
actual_total_lossesNo
actual_excess_lossesNo
actual_primary_lossesNo
expected_excess_lossesNo
expected_primary_lossesNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is met, and the description adds genuinely useful context beyond them: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, and an AP2 artifact with execution_hash is exported. It also explains browser-delegation behavior for gpu nodes, though it does not address failure modes or determinism caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core execution and privacy statements come reasonably early, but the trailing spec URL and the long FV-status hash path are low-value for an agent deciding whether to call the tool, and the opening sentence wastes space restating the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description covers execution mode, data-handling guarantees, and the exported artifact with hash. The main remaining gap is that policy_parameters field names are pushed off to an external manifest, leaving the actual calculation inputs unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics that the schema already documents in detail, and it defers policy_parameters field names to an external manifest rather than adding meaning, so it adds little over the structured input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name identify a specific calculation (NCCI experience modification) and the description frames it as an OpenChainGraph compute node in the compliance_mandate family, which does differentiate it somewhat from generic siblings. However, the body of the description is devoted to execution plumbing and provenance rather than stating what is actually computed, so an agent learns little beyond what the name already conveys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool versus sibling compute nodes, nor any prerequisites or exclusions. The compute-mode text describes mechanics of execution, not when this specific calculation applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_fdic_assessment_rateFDIC Deposit-Insurance Assessment Rate CalculatorC
Read-onlyIdempotent
Inspect

FDIC Deposit-Insurance Assessment Rate Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-431-fdic-assessment-rate-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
npr_bannerNo
rate_cap_bpNo
total_scoreNo
base_rate_bpNo
rate_floor_bpNo
total_rate_bpNo
assessment_base_musdNo
rate_schedule_versionNo
rate_floor_or_cap_appliedNo
unsecured_debt_adjustment_bpNo
brokered_deposit_adjustment_bpNo
estimated_quarterly_assessment_musdNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive/closed-world, but the description adds material the annotations do not: inputs are processed transiently and never stored or logged, GPU nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for provenance. That is genuine behavioral disclosure beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infra boilerplate, a raw 64-character FV-status hash and URL, and repetition of the schema's compute-mode wording. The information an agent actually needs is buried, and the opening line merely restates the title rather than front-loading purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the central domain input — policy_parameters, which carries the actual assessment-rate inputs — has no field names anywhere in the definition ('See the tool's manifest'). For a 4-parameter domain calculator, the description is complete only about transfer plumbing, not about the calculation itself.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes, parent_tool_ids, and policy_parameters semantics are fully carried by the schema. The description adds nothing further and even defers field names to an external manifest, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify a specific resource (FDIC deposit-insurance assessment rate), and the description labels it a 'compliance_mandate' compute node. But beyond that label the text never states what the calculation actually does or what it returns conceptually, so an agent cannot distinguish it from the dozens of other compute_* nodes apart from its name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as determine_deposit_insurance_coverage or other compute_* nodes, nor any prerequisite or input conditions. The only 'how' text concerns compute-mode selection (auto/server/browser), which is invocation mechanics, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_federal_withholdingFederal Withholding Calculator (Percentage Method)B
Read-onlyIdempotent
Inspect

Federal Withholding Calculator (Percentage Method): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-339-compute-gross-to-net. Open at: https://ainumbers.co/chaingraph/art-338-compute-federal-withholding.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
errorNo
tax_yearNo
bracket_rateNo
filing_statusNo
pay_frequencyNo
bracket_at_leastNo
periods_per_yearNo
regulatory_basisNo
constants_versionNo
supported_tax_yearsNo
step3_credit_this_periodNo
adjusted_annual_wage_amountNo
tentative_annual_withholdingNo
federal_withholding_per_periodNo
tentative_withholding_this_periodNo
step4c_extra_withholding_per_periodNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, so the bar is lower, and the description adds genuinely new traits: deterministic execution, transient processing with no storage/logging, and an exported AP2 artifact carrying execution_hash for provenance. The compute-mode discussion duplicates the schema rather than adding to it, but the privacy and provenance disclosures are real value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The most useful content (what the tool computes) is only in the title; the body is a run-on block of infrastructure boilerplate, a raw sha256 FV-status path, and a URL. Provenance artifacts and snapshot caveats could be pushed to structured metadata, and none of it is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and provenance/chaining are covered. But the decision-function inputs live in an opaque policy_parameters object whose field names are deferred to an external manifest, and the description supplies no domain parameters, so an agent still cannot call this confidently without fetching the linked spec page.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are documented in the schema itself, making 3 the baseline. The description's compute:"auto"/"browser" explanation restates the schema's enum description almost verbatim and says nothing about parent_hashes/parent_tool_ids or the opaque policy_parameters payload.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names a specific calculation and method (federal withholding, percentage method), so the resource is identifiable. However, the description body never explains what the tool actually computes or what domain inputs drive it; it spends its words on compute-node infrastructure. Among dozens of compute_* siblings, nothing here differentiates it beyond the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one concrete usage constraint ('Use synthetic or anonymised inputs only') and a chaining hint ('Output feeds: art-339-compute-gross-to-net'), which implies where it sits in a chain. It never states when to pick this over alternatives (e.g. compute_gross_to_net, compute_fedwire...) or what prerequisites exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_fha_mip_eligibilityFHA MIP Eligibility CalculatorB
Read-onlyIdempotent
Inspect

FHA MIP Eligibility Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-224-fha-mip-eligibility.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dtiNo
noteNo
ufmipNo
pii_noteNo
annual_mipNo
max_ltv_pctNo
fha_eligibleNo
ltv_eligibleNo
table_sourceNo
fico_eligibleNo
table_versionNo
regulatory_basisNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description genuinely adds beyond them: transient server-side processing with no storage, logging or retention; compute:'auto' vs 'browser' delegation behavior; and an exported AP2 artifact with execution_hash plus an offline-verifiable FV-status receipt. These are real behavioral traits an agent should know. It stops short of 5 by omitting error/failure behavior and any rate or size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the title, but a large share of the text is infrastructure boilerplate and a long FV-status URL containing a 64-character hash, which earns little for an agent trying to invoke the tool. The sentences are dense but not wasteful per se; the balance between provenance trivia and decision-function context is off.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the compute/provenance story is well covered. The gap is the core function: policy_parameters is an open object whose field names are deferred to 'the tool's manifest,' so an agent cannot construct the actual eligibility inputs from the definition alone. For a decision-computation tool that is a material omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode sentences largely restate the schema's own compute description rather than adding syntax or defaults. Baseline 3 is correct when the schema carries parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and opening line ('FHA MIP Eligibility Calculator') give a specific domain and resource, so an agent knows this computes FHA mortgage-insurance-premium eligibility. However, the description itself adds no elaboration of what eligibility means or what the decision function evaluates — it immediately pivots to compute-node infrastructure ('OpenChainGraph compute node (compliance_mandate)'). The clarity comes almost entirely from the tool name, and there is no differentiation from the many other compute_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to select this tool versus alternatives, no prerequisites, and no conditions under which it should not be used. The only guidance is a data-handling note ('Use synthetic or anonymised inputs only') and compute-mode mechanics, neither of which helps an agent choose between this and the dozens of other compute_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_flsa_regular_rateFLSA Regular Rate & Overtime CalculatorC
Read-onlyIdempotent
Inspect

FLSA Regular Rate & Overtime Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-340-compute-flsa-regular-rate.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
hourly_rateNo
regular_rateNo
total_pay_dueNo
overtime_hoursNo
regulatory_basisNo
constants_versionNo
hours_worked_weekNo
straight_time_payNo
total_remunerationNo
other_includable_payNo
overtime_premium_payNo
discretionary_bonus_excludedNo
nondiscretionary_bonus_amountNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: transient, non-stored inputs, deterministic server-side execution on Cloudflare Workers, and an AP2 artifact with execution_hash. It stops short of disclosing limits, error behavior, or what the kernel actually returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, but the body is generic boilerplate shared across the whole node family, and the pasted URL plus 64-character FV-status hash consume a large share of the text without helping an agent call the tool. Size is not justified by information density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and full annotations exist, so return format and safety need not be repeated. The critical remaining gap is that the decision-relevant payload (policy_parameters field names for an FLSA regular-rate computation) is deferred to an external manifest, leaving the agent unable to populate the key input from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents compute, parent_hashes, parent_tool_ids and policy_parameters, making the baseline 3 appropriate. The description reinforces the compute-mode contract and AP2 chaining but never enumerates the policy_parameters fields, which remain hidden behind the tool manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line names the domain (FLSA regular rate & overtime) and tags it as a compliance_mandate compute node, so the agent can tell roughly what it computes. However, it largely restates the name/title and never explains the actual computation (how regular rate is derived, what overtime logic applies), and there is no differentiation from the many sibling compute_* nodes. It is identifiable but shallow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only 'when' guidance concerns the generic compute mode (auto/server/browser) and GPU delegation, which is infrastructure plumbing, not task routing. There is no statement of when to reach for this tool versus the numerous other compute_* siblings, and no prerequisites or input conditions are described.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_forecast_accuracy_scoreForecast Accuracy ScorerC
Read-onlyIdempotent
Inspect

Forecast Accuracy Scorer: OpenChainGraph compute node (forecast_accuracy_score). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-657-forecast-accuracy-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nYes
warningsYes
base_rateYes
log_scoreYes
disclaimerYes
brier_scoreYes
scoring_noteYes
category_noteYes
accuracy_classYes
brier_referenceYes
brier_skill_scoreYes
category_breakdownYes
reference_probabilityYes

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, and the description adds genuine context beyond them: deterministic execution, transient non-retained inputs, and AP2 artifact export with execution_hash for provenance. It also explains the compute:'auto'/'server'/'browser' delegation behavior, which is real operational detail an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are redundant, and a large fraction of the text is boilerplate (URL, FV-status hash, 'snapshot not a subscription') that does not help an agent invoke the tool. The useful content (compute modes, no-retention) is buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a scoring tool with an opaque policy_parameters object the description should say what the scoring compares and what inputs it requires. That core information is absent, and the sibling overlap with score_cash_forecast_accuracy is never resolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, and the description only elaborates on the compute mode (duplicating the schema's own enum description). The critical policy_parameters object is left to 'See the tool's manifest for field names', so the description adds no semantic detail about the actual decision inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The body essentially restates the name and title: 'OpenChainGraph compute node (forecast_accuracy_score)' and 'Deterministic OpenChainGraph compute node.' It never states what a forecast accuracy score actually measures (error metric, inputs compared, output form), so an agent learns nothing about the operation beyond the tool's own name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, and no differentiation from the closely named sibling score_cash_forecast_accuracy. The only conditional language addresses the compute mode parameter, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_fr2052a_inflow_outflow_classificationFR 2052a Inflow/Outflow Bucket ClassifierC
Read-onlyIdempotent
Inspect

FR 2052a Inflow/Outflow Bucket Classifier: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-437-fr2052a-inflow-outflow-classifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsNo
row_countNo
form_2052aNo
override_countNo
total_net_musdNo
total_inflow_musdNo
total_outflow_musdNo
boundary_table_versionNo
elimination_total_musdNo
override_missing_reason_countNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description goes meaningfully beyond that: it explains server-side vs browser delegation for gpu:false/gpu:true kernels, that inputs are processed transiently and not stored or logged, that only synthetic/anonymised inputs should be used, and that an AP2 artifact with execution_hash is exported for provenance. These are real operational traits an agent cannot get from the annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Sentences are individually efficient and front-loaded with the title, but a large share of the text is low-value for tool selection (workflow URL, a long FV-status hash path, artifact/marketing prose) while the tool's actual function is omitted. That is a misallocation of the space rather than pure bloat, so mid-range.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, for a regulatory classification node whose key input is an opaque policy_parameters object with additionalProperties, the description supplies no bucket taxonomy, no input field guidance, and no indication of what the classification output means — it explicitly defers field names to an external manifest. The platform boilerplate is complete, but the task-relevant content is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description's compute-mode prose duplicates the schema's own enum description, and it adds nothing about parent_hashes/parent_tool_ids ordering or about what fields policy_parameters expects beyond deferring to 'the tool's manifest'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('FR 2052a Inflow/Outflow Bucket Classifier') and then spends nearly all its words on platform metadata (OpenChainGraph compute node, compute modes, artifact export, a URL and an FV-status receipt). It never states what the classifier actually decides — which inflows/outflows map to which FR 2052a buckets — beyond the generic phrase 'this tool's decision function'. An agent can infer the domain from the name but gets no substantive purpose statement from the description itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling reporting/compute tools (e.g., other FR 2052a, LCR/NSFR, or liquidity tools), nor any prerequisites, input assumptions, or exclusions. The only conditional guidance given is about compute mode routing, which is an execution mechanic, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_fund_expense_ratiosCompute Fund Expense RatiosC
Read-onlyIdempotent
Inspect

Compute Fund Expense Ratios: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-375-compute-fund-expense-ratios.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
fund_idNo
roundingNo
componentsNo
not_provenNo
period_endNo
period_startNo
structural_errorNo
net_expense_ratioNo
gross_expense_ratioNo
total_expense_ratioNo
regulatory_frameworkNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior: the auto/server/browser compute semantics, that gpu:true nodes always delegate to the browser, that inputs are processed transiently and not retained, and that an AP2 artifact with execution_hash is exported for chain provenance. That is real disclosure beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front half repeats the title and then dumps compute-binding plumbing, and the trailing FV-status sentence with a raw hash URL and 'these are not a subscription; this receipt verifies offline' is marketing/verification boilerplate an agent cannot act on. Substantial content does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute-mode behavior is covered. However, for a nested-input compute node the description still never says what expense ratio metric is produced or what belongs in policy_parameters, leaving the agent unable to form a correct call beyond the transport-level fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; the description mostly restates the compute-mode text verbatim. Critically, it does not clarify policy_parameters field names, deferring to an external manifest, which leaves the domain inputs opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The header 'Compute Fund Expense Ratios: OpenChainGraph compute node (attestation_mandate)' names a verb and resource, but the body never explains what an expense-ratio computation actually is, what it consumes, or what it produces. It also gives no differentiation from the near-identical sibling recompute_fund_fees. Purpose is stated but remains vague about domain intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative, despite dozens of adjacent fund/fee siblings (recompute_fund_fees, recompute_fund_nav, record_fund_positions). The only constraint given is 'Use synthetic or anonymised inputs only', which is a data-hygiene rule, not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_fx_funding_sequencerFX Funding SequencerB
Read-onlyIdempotent
Inspect

FX Funding Sequencer: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-672-fx-funding-sequencer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, but the description adds meaningful behavior beyond them: deterministic execution, server-side compute on Cloudflare Workers, a browser-delegation fallback path, transient processing with explicit no-store/no-log/no-retention guarantees, and an AP2 artifact emission with execution_hash. The data-handling and delegation details are genuinely valuable disclosures not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the name and class, but wastes space by repeating 'OpenChainGraph compute node' in two consecutive sentences and by embedding a long FV-status URL and hash. The core behavioral content is present but padded with infrastructure boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return burden and does disclose that it exports an AP2 artifact with execution_hash (or a browser delegation URL), which is useful. But for a 4-parameter tool whose central input (policy_parameters) is left to an external manifest, the definition is only minimally complete about what the caller must supply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail; the baseline of 3 applies. The description restates the compute-mode behavior rather than adding syntax or format beyond the schema, and it explicitly defers policy_parameters field names to 'the tool's manifest,' adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource ('FX Funding Sequencer: OpenChainGraph compute node') and tags its domain class ('compliance_control'), which differentiates it from non-compute siblings. However, it never explains what the FX funding sequencing decision function actually computes, so the purpose stays at the infrastructure level and is largely a restatement of the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an input-materialization guideline ('Use synthetic or anonymised inputs only') but no guidance on when to choose this tool over the many sibling compute_* nodes, nor any prerequisites or conditions. The absence of any when-to-use/when-not framing leaves routing entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_fx_netting_positionsMultilateral FX Netting CalculatorC
Read-onlyIdempotent
Inspect

Multilateral FX Netting Calculator: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-368-compute-fx-netting-positions.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
positionsNo
currency_countNo
net_volume_usdNo
gross_volume_usdNo
regulatory_basisNo
netting_efficiency_pctNo
estimated_settlement_savings_usdNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the bar is lower. The description still adds useful operational context: server-side vs browser execution, transient non-retention of inputs, and an AP2 artifact export with execution_hash. These are meaningful behavioral traits beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and front-loads generic OpenChainGraph identity boilerplate rather than the tool's actual function. It also contains redundancy such as 'OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node.' The core purpose is never made clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex analytics compute node with nested policy_parameters and a present output schema, the description omits what the netting calculation does, when to use it, and what policy_parameters fields mean beyond 'see the manifest.' External links and FV-status metadata do not fill those gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters, including compute mode and policy_parameters, are documented in the schema. The description duplicates the compute-mode semantics and adds no extra parameter meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title 'Multilateral FX Netting Calculator' and adds generic OpenChainGraph compute-node boilerplate, but never explains what multilateral FX netting positions actually are or how this tool differs from siblings like compute_multilateral_netting. An agent cannot infer the specific computation or scope from this text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no comparison to alternative netting or FX-related tools, and no prerequisites beyond 'Use synthetic or anonymised inputs only.' The compute modes are explained, but that is execution configuration rather than usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_globe_jurisdictional_etrGloBE Jurisdictional ETR CalculatorC
Read-onlyIdempotent
Inspect

GloBE Jurisdictional ETR Calculator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-455-globe-sbie-topup. Open at: https://ainumbers.co/chaingraph/art-454-globe-jurisdictional-etr.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
etrNo
entitiesNo
entity_countNo
minimum_rateNo
no_etr_computedNo
jurisdiction_nameNo
top_up_tax_amountNo
declared_electionsNo
top_up_tax_percentageNo
adjusted_covered_taxesNo
net_globe_income_or_lossNo
jurisdictional_globe_incomeNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description goes beyond them usefully: it explains compute-mode behavior (auto/server/browser, GPU nodes always delegating, browser delegation URL), states that inputs are processed transiently and not stored or logged, and notes that an AP2 artifact with execution_hash is exported for chain provenance. These are real operational traits an agent cannot infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title and compute-binding information are front-loaded, but the body contains a large block of platform boilerplate (transient processing, artifact export, documentation URL, FV-status snapshot URL with a 64-hex hash) that is repeated infrastructure text rather than tool-specific meaning. It is not padded with repetition, but several sentences do not earn their place relative to what the agent needs to invoke this node.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description does cover compute binding, data handling, and provenance output. What is missing is the core semantic content: what a 'jurisdictional ETR' computes and what fields the policy_parameters object should contain (it defers to 'the tool's manifest'). For a 4-parameter compute node with a nested free-form object, that gap matters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, including the enum semantics and the chaining pair ordering. The description adds essentially nothing beyond that. Baseline 3 is appropriate when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title verbatim ('GloBE Jurisdictional ETR Calculator') and then spends its length on platform boilerplate rather than what a jurisdictional ETR computation actually is. It never distinguishes this node from close siblings like compute_globe_sbie_topup, compute_globe_topup_tax, or evaluate_globe_safe_harbour_tests. The only concrete purpose signal is 'Output feeds: art-455-globe-sbie-topup', which hints at pipeline position but not function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given. The pipeline hint ('Output feeds: art-455-globe-sbie-topup') implies an ordering relationship, but nothing tells the agent when this node is the right choice versus the many other GloBE nodes in the sibling list. The 'Use synthetic or anonymised inputs only' line is the closest thing to an instruction, and it is a data constraint, not a usage criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_globe_sbie_topupGloBE SBIE & Top-up Tax CalculatorB
Read-onlyIdempotent
Inspect

GloBE SBIE & Top-up Tax Calculator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-454-globe-jurisdictional-etr. Open at: https://ainumbers.co/chaingraph/art-455-globe-sbie-topup.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sbieNo
qdmtt_paidNo
top_up_taxNo
target_yearNo
globe_incomeNo
payroll_rateNo
excess_profitNo
rate_row_foundNo
payroll_componentNo
tangible_asset_rateNo
jurisdictional_top_upNo
qdmtt_over_collectionNo
top_up_tax_percentageNo
tangible_asset_componentNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety bar is low and the description earns credit for going beyond it: transient processing with no storage/logging/retention, the compute:"auto" vs "browser" vs server execution split, browser delegation for gpu:true nodes, and export of an AP2 artifact carrying execution_hash for chain provenance. These are real operational behaviors an agent needs and cannot read off the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title-as-purpose sentence is immediately and redundantly restated ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.'), and the long FV-status hash URL consumes a large share of a short field. The execution-mode and provenance clauses are front-loaded and earn their place, but the opening redundancy and the URL make it looser than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. What is missing is domain content: the description defers field semantics to 'the tool's manifest', leaving the policy_parameters payload opaque for a tax computation whose correctness depends on those inputs. Adequate at the platform level, thin at the decision level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in full. The description restates the compute-mode behavior and the chaining intent, adding only marginal emphasis over the schema text. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line identify the resource (GloBE SBIE & Top-up Tax) and the platform role (OpenChainGraph compute node), so the agent can tell roughly what domain this covers. However, the description never actually states what the computation does — SBIE exclusion amounts, top-up percentage, jurisdictional blending — and it does not distinguish itself from the very close sibling compute_globe_topup_tax. Purpose is implied rather than defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives ordering context by naming the upstream artifact it consumes (art-454-globe-jurisdictional-etr), which tells the agent this runs after the jurisdictional ETR step. It offers no explicit when-to-use guidance against alternatives such as compute_globe_topup_tax, evaluate_globe_de_minimis_exclusion, or evaluate_globe_safe_harbour_tests, so the agent must infer positioning from the artifact lineage alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_globe_topup_taxGloBE Top-Up Tax & QDMTT Allocation CalculatorC
Read-onlyIdempotent
Inspect

GloBE Top-Up Tax & QDMTT Allocation Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-365-compute-globe-topup-tax.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fyNo
noteNo
parent_hqNo
us_exemptNo
total_taxesNo
sbs_electionNo
total_incomeNo
aggregate_etrNo
jurisdictionsNo
low_etr_countNo
globe_min_rateNo
regulatory_basisNo
total_top_up_taxNo
constants_versionNo
central_record_sbsNo
total_iir_collectedNo
total_utpr_collectedNo
total_qdmtt_collectedNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral facts beyond that: inputs are processed transiently and not stored/logged, synthetic inputs only, and an AP2 artifact with execution_hash is exported. It still says nothing about the computation's determinism guarantees or result contents, so this is a modest add.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is buried under platform boilerplate, a documentation URL, and a 64-character FV-status hash citation that does not help an agent decide or invoke. Multiple sentences describe infrastructure rather than the tax computation, so the text is long without being front-loaded on what matters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex compliance calculation with a nested, schema-opaque policy_parameters object whose field names live only in an external manifest, the description gives the agent no way to know what inputs to supply. Annotations and output schema are present, but the core 'what do I pass and what comes back' gap is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids, and policy_parameters are documented in the schema itself; the baseline is 3. The description's mention of execution_hash provenance loosely ties to parent_hashes, but it adds no semantics for policy_parameters, which the schema defers to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence merely restates the title ("GloBE Top-Up Tax & QDMTT Allocation Calculator") and then pivots to platform boilerplate; nothing in the body states what the calculation actually does or takes as input. Siblings such as compute_globe_jurisdictional_etr, compute_globe_sbie_topup, and compose_globe_gir are left undifferentiated because no scope or formula difference is given.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute modes and browser delegation, but never says when an agent should pick this tool over compute_globe_jurisdictional_etr, compute_globe_sbie_topup, or evaluate_globe_safe_harbour_tests. Usage is implied only by the tool name, with no context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_gl_tieout_recomputeGL Tie-Out RecomputeB
Read-onlyIdempotent
Inspect

GL Tie-Out Recompute: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/665-gl-tieout-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), but the description adds real value: transient processing with no storage/logging/retention, deterministic execution, browser delegation for gpu:true nodes, and an AP2 export artifact. It stops short of describing error behavior or failure modes, so 5 is not warranted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is padded and repetitive ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and the compute-mode passage duplicates the schema enum description. The long embedded FV-status hash and URL consume significant space relative to the actionable information, though the content is front-loaded and coherent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does convey the returned AP2 artifact and execution_hash, and it covers data handling and compute routing for a 4-param, no-required-param tool. What is missing is the domain substance — what the tie-out recompute determines and what its policy_parameters mean — so it is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute modes, parent_hashes chaining, parent_tool_ids ordering, and policy_parameters. The description largely restates the compute-mode semantics the schema already provides and adds no new field-level meaning, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a 'Deterministic OpenChainGraph compute node (compliance_control)' and notes it exports an AP2 artifact with execution_hash, but it never explains what a GL tie-out recompute actually computes. The core verb+resource meaning is carried by the name, and nothing differentiates it from the many sibling recompute_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode selection ('auto' vs 'browser') and cautions 'Use synthetic or anonymised inputs only,' which is useful operating guidance. However, it offers no guidance on when to invoke this tool rather than its recompute siblings, nor any prerequisites or exclusions for the GL tie-out use case itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_gross_to_netGross-to-Net Payroll Calculator (FICA)B
Read-onlyIdempotent
Inspect

Gross-to-Net Payroll Calculator (FICA): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-338-compute-federal-withholding. Open at: https://ainumbers.co/chaingraph/art-339-compute-gross-to-net.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
errorNo
net_payNo
tax_yearNo
medicare_taxNo
ss_wage_baseNo
fica_tax_totalNo
regulatory_basisNo
constants_versionNo
social_security_taxNo
supported_tax_yearsNo
fica_wages_this_periodNo
additional_medicare_taxNo
post_tax_other_deductionsNo
pretax_reduces_fica_and_fitNo
ytd_fica_wages_after_periodNo
ss_taxable_wages_this_periodNo
additional_medicare_thresholdNo
federal_withholding_per_periodNo
additional_medicare_wages_this_periodNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe-read profile (readOnly, idempotent, non-destructive, closed-world), so the description earns credit for adding beyond them: transient processing with no storage/logging/retention, deterministic server-vs-browser execution, and an exported AP2 artifact carrying execution_hash. Those are real operational traits an agent cannot infer from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is padded with infrastructure boilerplate that applies to every compute node (compute-binding rules, artifact export, fv-status URL and hash), much of which is irrelevant to selecting this specific payroll tool. The useful domain signal is diluted rather than front-loaded, so the length does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and full annotations exist, so return values and safety need no elaboration. But for a payroll/tax computation the actual decision-function inputs live in an undisclosed policy_parameters object pointed at an external manifest, leaving the substantive domain specification incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics the schema already documents, and it does not resolve the critical gap that policy_parameters is an opaque object whose field names are deferred to an external manifest. It therefore adds little meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and opening line state a specific verb and resource (gross-to-net payroll calculation, FICA), and it identifies the upstream artifact it consumes (art-338-compute-federal-withholding), which helps separate it from siblings like compute_federal_withholding. It stops short of explicitly contrasting itself with the nearest siblings, so it lands just below the discriminating 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains compute-mode behavior (auto/server/browser) and warns to use synthetic or anonymised inputs, which is implied usage guidance for a sensitive compute tool. However it never states when to choose this tool over compute_federal_withholding or the other payroll siblings, nor any prerequisites or exclusions for the computation itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_hmda_rate_spreadCompute HMDA Rate SpreadC
Read-onlyIdempotent
Inspect

Compute HMDA Rate Spread: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-229-compute-disparity-metrics. Open at: https://ainumbers.co/chaingraph/art-230-compute-hmda-rate-spread.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
apr_pctNo
apor_pctNo
pii_noteNo
lien_typeNo
lock_dateNo
product_typeNo
table_sourceNo
is_reportableNo
table_versionNo
rate_spread_pctNo
apor_source_noteNo
hmda_report_codeNo
regulatory_basisNo
reportability_threshold_pctNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely useful traits: deterministic execution, compute-mode routing behavior, transient/no-retention processing, and the AP2 artifact with execution_hash for chain provenance. These go beyond what the annotations disclose, though the compute-mode behavior largely duplicates the schema's own enum description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The body is a dense wall of infrastructure boilerplate (compute binding, Worker hosting, receipt hash, documentation URL, FV-status snapshot) rather than task-relevant content. The useful payload is a small fraction of the text and is not front-loaded as actionable guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, return values need not be described. However, for a compute node whose parameters live in a free-form policy_parameters object, the description never indicates what inputs the decision function expects, leaving the agent dependent on the external manifest. The execution/privacy concerns are well covered, so this is adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description paraphrases the compute enum and touches on chaining (parent_hashes/parent_tool_ids) but adds no meaning beyond the schema, and it never hints at how policy_parameters fields are determined, which the schema itself punts to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause restates the tool name ('Compute HMDA Rate Spread: OpenChainGraph compute node') rather than explaining what an HMDA rate spread is or what the computation produces. The only additions are an internal node category ('compliance_mandate') and a downstream artifact id ('art-229-compute-disparity-metrics'). It gives enough to place the tool in a domain but nothing that differentiates it from the many sibling compute_* nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use synthetic or anonymised inputs only' is an input constraint, not guidance on when to choose this tool over alternatives such as compute_disparity_metrics, classify_rate_rec_5pct_threshold, or check_qm_points_and_fees. No when-to-use or when-not-to-use condition is stated, and no alternative is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_identity_proofing_assurance_levelIdentity-Proofing Assurance Level EvaluatorA
Read-onlyIdempotent
Inspect

Identity-Proofing Assurance Level Evaluator: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-523-identity-proofing-assurance-level.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
as_ofNo
shortfallNo
target_metNo
undecidableNo
criteria_metNo
framework_idNo
achieved_levelNo
levels_definedNo
framework_versionNo
criteria_evaluatedNo
target_level_foundNo
evidence_item_countNo
declared_target_levelNo
criteria_shortfall_countNo
criteria_undecidable_countNo

TDQS

A3.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it discloses deterministic execution, that gpu:true nodes always delegate to browser, that inputs are processed transiently and not stored/logged/retained, that only synthetic/anonymised inputs should be supplied, and that an AP2 artifact with execution_hash is exported for provenance. It also explains the FV-status receipt is a snapshot verifiable offline — real behavioral context an agent could not infer from readOnly/idempotent hints alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The key purpose is front-loaded, but the text restates the tool name and title verbatim and repeats 'deterministic OpenChainGraph compute node' twice, then appends a raw URL and a 64-hex hash that consume space without aiding selection. Some boilerplate (data handling, compute modes) is load-bearing, so it is verbose rather than wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and compute/data-handling concerns are covered. But for a tool whose inputs are an opaque policy_parameters object, the description never indicates what fields or decision logic drive the assurance-level computation, leaving a real gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; the description merely repeats the compute-mode semantics verbatim. It adds nothing about what belongs in policy_parameters (it defers to an external manifest), so it does not compensate for the opaque free-form object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause names a specific domain function — evaluating the assurance level for identity-proofing — which is unique among the siblings (no other tool targets identity-proofing assurance). However, the description immediately pivots to compute-node plumbing and never elaborates on what the evaluation actually produces, and it never differentiates itself from adjacent artefact-export tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance or routing to alternatives. The only conditional language ('compute:\"auto\"', 'gpu:true nodes always delegate') concerns parameter selection, not tool selection, and the agent is given no signal for when this tool is the right call versus the many other compute/assess siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_index_weightsCompute Index WeightsB
Read-onlyIdempotent
Inspect

Compute Index Weights: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-645-compute-index-weights.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
weightsNo
index_idNo
as_of_dateNo
not_provenNo
constituents_refNo
structural_errorNo
weight_sum_checkNo
methodology_notesNo
regulatory_frameworkNo
weighting_methodologyNo
weight_sum_within_toleranceNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/non-openWorld, but the description adds real behavioral context beyond them: deterministic execution, transient processing with no storage or logging, a 'synthetic or anonymised inputs only' constraint, and export of an AP2 artifact carrying execution_hash for provenance chaining. It also clarifies that the FV-status receipt is an offline-verifiable snapshot rather than a subscription. This is meaningfully richer than the annotations, though it stops short of describing rate limits or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The key identity and compute-mode behavior are front-loaded, which is good, but the text is bloated with repeated phrasing ('Deterministic OpenChainGraph compute node'), a full 64-character FV-status hash, and a trailing URL that most agents cannot act on. Several sentences earn their place; the receipt/URL boilerplate does not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and the description covers execution mode, data handling, and provenance export well enough to call the tool correctly. The main gap is the missing domain framing of what the computed weights represent and how this node relates to the index-publishing siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description largely restates the compute-mode semantics rather than adding new parameter meaning, and says nothing extra about how policy_parameters should be shaped. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb+resource ('Compute Index Weights') and frames it as an OpenChainGraph compute node tied to an 'attestation_mandate', so the agent knows it is a deterministic computation. However, it never explains what 'index weights' actually are or the domain they belong to, and it draws no line against the dozens of other compute_* siblings. The purpose is legible but vague in substance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The text explains how the compute modes behave (auto/server/browser, gpu:true delegation), which is invocation mechanics rather than usage guidance. There is no statement of when to choose this tool over alternatives such as publish_index_head, record_index_constituents, or the many other compute_* nodes. No prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_intercompany_elimination_nettingIntercompany Elimination and Netting WorkflowB
Read-onlyIdempotent
Inspect

Intercompany Elimination and Netting Workflow: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/684-intercompany-elimination-netting.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, closed-world, but the description adds real value beyond them: transient input processing (not stored/logged/retained), the browser-delegation behavior of compute modes, and the AP2 artifact export with execution_hash. Data-handling and execution semantics are genuinely disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text repeats itself ('OpenChainGraph compute node' twice in the first two sentences) and front-loads infrastructure boilerplate rather than the tool's function. The FV-status snapshot sentence is lengthy, though the data-handling and compute-mode content earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It adequately covers execution mechanics, data handling, and the returned AP2 artifact (helpful given no output schema), and the compute parameter. But for a tool with a nested policy_parameters object it never explains what fields drive the elimination/netting decision, leaving the core domain function undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's compute-mode sentence largely duplicates the schema's enum documentation and it defers policy_parameters field names to 'the tool's manifest'. It adds no syntax or meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Intercompany Elimination and Netting Workflow') and categorizes the tool as an 'OpenChainGraph compute node (compliance_control)', but never explains what the elimination/netting computation actually does. It distinguishes nothing from close siblings like compute_multilateral_netting or compute_fx_netting_positions. Purpose is only inferable from the name, not stated in the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute-mode discussion ('auto'/'browser'/'server') explains how to invoke, not when to use this tool versus alternatives. There is one useful constraint ('Use synthetic or anonymised inputs only'), but no when-to-use context and no routing to sibling tools. Guidance is largely absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_interest_accrual_recomputeInterest Accrual RecomputeC
Read-onlyIdempotent
Inspect

Interest Accrual Recompute: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/661-interest-accrual-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, but the description goes further: it discloses server-side vs. browser execution, gpu delegation behavior, transient processing (not stored, logged, or retained), and export of an AP2 artifact with execution_hash for chain provenance. These are substantive behavioral traits beyond the annotations, though it omits failure modes and determinism caveats for the actual computation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a dense run-on that front-loads a restatement of the name, then packs execution modes, privacy notes, artifact export, a full rendered URL, and an FV-status receipt path with a 64-char hash into one block. Several sentences serve provenance bookkeeping rather than helping an agent decide or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter compute tool with nested policy_parameters and chain-provenance inputs, the description covers execution behavior and output artifact but leaves the core purpose — what accrual computation is performed and what policy_parameters must contain — unexplained. Given 100% schema coverage and no output schema, it is adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description paraphrases the compute enum ("auto"/"server"/"browser") but adds no meaning beyond the schema and explicitly defers policy_parameters field names to the manifest. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The body largely restates the name ("Interest Accrual Recompute: OpenChainGraph compute node") and then describes the compute framework in general terms rather than what accrual computation this node performs. Nothing distinguishes it from siblings like compute_apy_earned_recompute or allocate_ihb_interest beyond the name itself. It is closer to a tautology plus infrastructure boilerplate than a stated verb+resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no reference to any sibling tool. The only usage-adjacent content is the compute-mode explanation and the "synthetic or anonymised inputs only" instruction, neither of which tells an agent when this tool is the right choice over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_intraday_liquidity_monitoringBCBS 248 Intraday Liquidity Monitoring SnapshotC
Read-onlyIdempotent
Inspect

BCBS 248 Intraday Liquidity Monitoring Snapshot: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-477-intraday-liquidity-monitoring.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
usage_coveredNo
coverage_ratioNo
regulatory_basisNo
obligations_summaryNo
total_payments_musdNo
total_receipts_musdNo
daily_max_usage_musdNo
cumulative_position_pathNo
time_specific_obligationsNo
available_intraday_sourcesNo
start_of_day_available_musdNo
available_sources_total_musdNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive/closed-world, and the description adds genuinely useful context beyond them: inputs are processed transiently and not stored, logged, or retained; only synthetic/anonymised inputs should be used; an AP2 artifact with execution_hash is exported for provenance; and the FV-status file is a snapshot, not a subscription. This is meaningful operational disclosure a caller needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the title but then devotes most of its length to generic graph-node boilerplate, a raw URL, and a 64-character FV-status hash — content of little value for tool selection. The sentences about what the tool computes are crowded out by infrastructure text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Operational aspects (privacy, delegation, provenance, offline-verifiable receipt) are covered, and annotations plus an output schema carry the rest. But for a domain compute node with a nested policy_parameters object, the description gives no indication of what inputs or outputs the liquidity-monitoring computation involves, leaving a real gap in the compliance context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with 4 optional params, so the schema already carries the field-level semantics, including the compute enum it re-explicates. The description adds no field-name or format guidance for policy_parameters (the actual domain inputs) or the parent_hashes/parent_tool_ids pairing, so it lands at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific regulatory framework and artifact (BCBS 248 Intraday Liquidity Monitoring Snapshot) and calls itself a 'compute node', so the resource is identifiable. However, it never says what the tool actually computes — no metrics, horizon, or output shape beyond 'snapshot' — and does not distinguish itself from siblings like run_liquidity_stress_test or compute_fr2052a_inflow_outflow_classification. The first sentence essentially restates the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to the many liquidity/reporting siblings. The only conditional logic given (compute 'auto' vs 'browser') is execution-mode plumbing already documented in the schema, not a selection rule for the tool itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_ipfs_cidIPFS CID ComputerB
Read-onlyIdempotent
Inspect

IPFS CID Computer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-210-ipfs-cid-computer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cidYes
codecYes
codec_codeYes
digest_hexYes
disclaimerYes
byte_lengthYes
multihash_fnYes
cid_bytes_hexYes
digest_lengthYes
multihash_fn_codeYes
known_vector_verifiedYes

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real behavioral context: inputs are processed transiently and not stored, logged, or retained, execution is deterministic, and the result is exported as an AP2 artifact with an execution_hash. This is meaningful disclosure beyond the annotations, though it omits rate/limit or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded paragraph with the core concept first, but it is padded with provenance minutiae — a documentation URL and a full FV-status receipt hash — that an agent cannot act on and that dilute the actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and all four parameters are schema-documented. The compute-mode and chaining mechanics are covered, but the description leaves the tool's actual decision function and its distinction from sibling compute nodes unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute enum semantics (auto/server/browser) that the schema already documents, and adds nothing about parent_hashes/parent_tool_ids ordering or the structure of policy_parameters beyond what the schema notes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line identify it as an "IPFS CID Computer / OpenChainGraph compute node", so the resource (CID computation) is stated, but the description never actually says what the tool computes a CID *from* or what its decision function does. It also does not differentiate itself from the many sibling compute_* nodes. Purpose is inferable but under-specified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is an actionable input constraint ("Use synthetic or anonymised inputs only") and a rule for choosing the compute mode (auto vs browser, gpu:true always delegates). However, there is no guidance on when to select this tool over the dozens of other compute_* siblings, and no prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_irrInternal Rate of Return (IRR)C
Read-onlyIdempotent
Inspect

Internal Rate of Return (IRR): OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-325-tvm-irr.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
methodNo
irr_pctNo
convergedNo
toleranceNo
iterationsNo
bracket_hi_pctNo
bracket_lo_pctNo
num_cash_flowsNo
regulatory_basisNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses deterministic execution, server-vs-browser compute behavior, transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash. These are meaningful behavioral traits not captured by the annotations. It stops short of covering error behavior, auth requirements, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and boilerplate-heavy, with redundant opening phrases ('OpenChainGraph compute node', 'Deterministic OpenChainGraph compute node') and extraneous operational details such as a URL and a long FV-status hash. It is not front-loaded around what the tool computes or how to invoke it correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema means return values need not be described, and the annotations cover the safety profile. However, the description does not explain how to supply IRR-specific inputs through policy_parameters, instead deferring to an external manifest. The operational context is complete, but the computational-input context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents the four parameters, including the compute enum. The description restates the compute-mode behavior but adds little parameter meaning beyond the schema, and it says nothing about parent_hashes, parent_tool_ids, or what fields belong in policy_parameters. Baseline 3 is appropriate when the schema carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the tool name/title ('Internal Rate of Return (IRR)') and labels it as an OpenChainGraph compute node. It does not add a clear verb-object purpose such as computing an IRR from cash flows, nor does it distinguish this from sibling tools like compute_xirr or compute_npv. The operational boilerplate does not clarify what the tool actually does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives some input-sensitivity guidance ('Use synthetic or anonymised inputs only') and explains compute modes, but it does not say when to choose compute_irr over alternatives such as compute_xirr or compute_npv. There is no explicit when-to-use, when-not-to-use, or alternative-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_large_exposures_limitLarge Exposures Limit CheckC
Read-onlyIdempotent
Inspect

Large Exposures Limit Check: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-425-large-exposures-limit-check.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
groupsNo
breach_listNo
caller_is_gsibNo
counterpartiesNo
regulatory_basisNo
tier1_capital_musdNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds substantial context: transient processing with no storage or logging, server-side vs browser delegation semantics, gpu:true always delegating, and the export of an AP2 artifact with execution_hash for chain provenance. This is meaningful behavioral disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure detail and a long FV-status URL plus hash, with the actual purpose never front-loaded or expanded. Sentences about the snapshot receipt and 'verifies offline regardless of whether that file is ever fetched' add bulk that does not help an agent select or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the description covers execution modes, privacy handling, and artifact export. What remains thin is the decision-function semantics (deferred to the manifest) and any differentiation from sibling checks, leaving it adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the compute enum and the parent_hashes/parent_tool_ids chaining fields. The description largely mirrors the compute-mode semantics already present in the schema and defers policy_parameters fields to an external manifest, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title (Large Exposures Limit Check) conveys a specific verb+resource, and the description adds the family (OpenChainGraph compute node, compliance_mandate) and that it is deterministic. However, the description itself does not elaborate on what the check actually computes or how it differs from siblings like compute_counterparty_limit_check or check_credit_concentration_topn_sector; the actual purpose is essentially a restatement of the title buried under infrastructure prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational guidance on compute modes and an input constraint ('Use synthetic or anonymised inputs only'), but never says when to choose this tool over the many sibling limit/concentration checks. No when-to-use or when-not-to-use routing is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_lcm_rate_derivationLCM Rate Derivation CalculatorB
Read-onlyIdempotent
Inspect

LCM Rate Derivation Calculator: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-255-compute-lcm-rate-derivation.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lcmNo
issuesNo
lae_pctNo
pii_noteNo
profit_pctNo
current_rateNo
table_sourceNo
credibility_zNo
table_versionNo
total_loadingNo
indicated_rateNo
pure_loss_costNo
lcm_denominatorNo
rate_change_pctNo
not_legal_adviceNo
regulatory_basisNo
variable_exp_pctNo
denominator_validNo
fixed_expense_pctNo
complement_loss_costNo
pure_loss_cost_loadedNo
rate_change_directionNo
proprietary_data_noticeNo
credibility_weighted_loss_costNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, idempotent, non-destructive safety profile, but the description adds real context: default server-side execution for gpu:false nodes, browser delegation for gpu:true, transient non-retention of inputs, synthetic-input-only restriction, and export of an AP2 artifact with execution_hash. These are meaningful behavioral traits beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is dense infrastructure boilerplate plus a raw URL and a long FV-status hash path. Some sentences (privacy, compute modes) earn their place, while the repeated 'OpenChainGraph compute node' phrasing and the offline-receipt explanation add bulk without helping invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, rich annotations and full parameter coverage, the structural pieces are present. The notable gap is domain explanation: the description never states what this derivation computes or how to populate policy_parameters, which is the one thing an agent still needs from prose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description restates the compute modes and defers field naming to 'the tool's manifest', adding little beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('LCM Rate Derivation Calculator') and frames it as an OpenChainGraph compute node under the analytics_mandate, but it never explains what an 'LCM rate derivation' actually computes or what decision it supports. An agent learns its provenance and infrastructure role but not its substantive purpose, so it is only partly distinguishable from the many other compute_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool versus alternatives. The only conditional language concerns compute mode (auto/server/browser), which is an execution mechanic, not tool selection. Nothing tells the agent which analytical problems this tool is the right fit for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_lcr_nsfr_leverageLCR / NSFR / Leverage Ratio CalculatorC
Read-onlyIdempotent
Inspect

LCR / NSFR / Leverage Ratio Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-364-compute-lcr-nsfr-leverage.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lcrNo
noteNo
nsfrNo
leverageNo
regulatory_basisNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, non-open-world. The description adds genuinely new context: deterministic execution, server-side vs browser delegation semantics, transient processing with no storage/logging/retention, and an AP2 artifact export carrying execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with the tool name, but the body is padded with boilerplate (FV-status snapshot hash, offline-verification clause, URL) and duplicates the compute-mode explanation already in the schema. Several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but the core decision-function inputs live in policy_parameters and the description only says to 'See the tool's manifest for field names' — a manifest not supplied here. For a compute tool the agent cannot determine what actual inputs to provide.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute enum, parent_hashes, parent_tool_ids, and policy_parameters are all already documented in the schema; the description's compute-mode prose merely repeats it. It adds no field-level meaning for policy_parameters, deferring instead to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify the computed metrics (LCR, NSFR, leverage ratio), but the description spends most of its text on generic compute-node plumbing (Cloudflare Workers, browser delegation, AP2 export, FV-status). It does not explain what the ratios measure or what distinguishes this from liquidity/capital siblings like calculate_solvency2_scr_ratio or run_liquidity_stress_test.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no alternatives are named despite dozens of adjacent compliance-compute siblings. The only directive is the input-hygiene note 'Use synthetic or anonymised inputs only', which is a data rule rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_lending_recall_prioritizerLending Recall PrioritizerC
Read-onlyIdempotent
Inspect

Lending Recall Prioritizer: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/673-lending-recall-prioritizer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses real behavior: default server-side execution with compute:'auto', that 'browser' returns a delegation URL instead of a result, that gpu:true always delegates, that inputs are processed transiently and not stored/logged, and that it exports an AP2 artifact carrying execution_hash. This is meaningful operational context not present in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is reasonably short and front-loads the name and category, but a large share of the text is template boilerplate that applies to every OpenChainGraph node (compute modes, privacy language, the FV-status snapshot receipt, the marketing URL), none of which is tool-specific. The genuinely useful content is a minority of the sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, a nested free-form input object, and zero defined-field guidance for policy_parameters, the description should carry the load but instead outsources it to an external manifest and a URL. It never states what the tool returns or what the policy inputs look like, leaving the agent unable to call it correctly from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation largely repeats the schema's own wording, and it does not compensate for the free-form 'policy_parameters' object, deferring instead to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool's own name ('Lending Recall Prioritizer') and tags it as an 'OpenChainGraph compute node (compliance_control)' but never explains what a lending recall is, what 'prioritize' means here, or what the tool actually computes. It is essentially a title plus a category label, with no verb+resource function beyond the name itself, and no differentiation from the many sibling compute/recall tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, what condition selects it, or which sibling alternatives (e.g. resolve_recall_trace, assess_defi_lending) it supersedes or complements. The only conditional language addresses the compute routing parameter, which is a how-to, not a when-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_llpa_stackLLPA Stack CalculatorA
Read-onlyIdempotent
Inspect

LLPA Stack Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-222-agency-eligibility-matrix. Open at: https://ainumbers.co/chaingraph/art-221-llpa-stack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ltv_bandNo
pii_noteNo
base_llpaNo
fico_bandNo
componentsNo
fthb_waiverNo
feature_llpaNo
table_sourceNo
fthb_eligibleNo
table_versionNo
total_llpa_pctNo
regulatory_basisNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial context beyond them: server-side Cloudflare Workers vs browser delegation URL, deterministic execution, transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash for provenance. This is meaningful behavioral disclosure, though it omits any output/pagination detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose and routing rules well, but the trailing FV-status receipt sentence with a full 64-char hash is heavy and reads as provenance boilerplate rather than invocation guidance. Sizeable but mostly earned, with some dilution.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich output schema and strong annotations, the description only needs to add invocation context — which it does (compute modes, input privacy constraint, upstream chaining, artifact export). The one gap is that it never characterizes the decision function's output, though the output schema likely covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode routing but adds no field-level meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('LLPA Stack Calculator' / deterministic OpenChainGraph compute node) and distinguishes itself via compute-mode routing and upstream chaining. However, it never explains what the LLPA stack computation actually produces, so an agent knows the mechanism but not the output semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real usage constraints ('Use synthetic or anonymised inputs only') and explains compute-mode selection (auto/server/browser, gpu:true always delegates), plus names the upstream artifact art-222-agency-eligibility-matrix. But it offers no explicit when-to-use-this-vs-a-sibling-tool guidance given the huge sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_loan_servicing_waterfall_recomputeLoan Servicing Waterfall RecomputeC
Read-onlyIdempotent
Inspect

Loan Servicing Waterfall Recompute: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/664-loan-servicing-waterfall-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
core_appliedNo
missing_inputsNo
payment_amountNo
application_orderNo
per_bucket_deltasNo
unapplied_remainderNo
computed_applied_by_bucketNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely new behavior: transient processing with no storage, logging or retention, deterministic execution, export of an AP2 artifact carrying execution_hash for chain provenance, and browser delegation for gpu:true nodes. This goes meaningfully beyond the structured hints, though the compute-mode paragraph largely duplicates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded, but the text is padded with duplicated phrasing ('OpenChainGraph compute node' / 'Deterministic OpenChainGraph compute node'), a marketing URL, and a long FV-status receipt paragraph that does not help an agent select or invoke the tool. Much of the length is platform boilerplate rather than tool-specific content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and annotations cover the safety profile. However, for a 4-parameter node with a nested policy_parameters object, the description never says what the loan servicing waterfall computation consumes or produces, leaving the domain gap to the external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode semantics that already live in the schema and defers policy_parameters field names to 'the tool's manifest', adding no parameter meaning of its own. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource and the verb ('Loan Servicing Waterfall Recompute', 'compute node'), but the bulk of the text describes the OpenChainGraph platform rather than what the waterfall recompute actually calculates. It offers no differentiation from close siblings such as recompute_payment_waterfall or recompute_trustee_report_waterfall, so the agent must infer the domain from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no routing to sibling tools that also recompute waterfalls. The only actionable usage instruction is 'Use synthetic or anonymised inputs only', which is a real constraint but not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_ltc_funding_comparatorLTC Funding ComparatorC
Read-onlyIdempotent
Inspect

LTC Funding Comparator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/686-ltc-funding-comparator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description does add genuine behavioral detail: server-side execution on Cloudflare Workers for gpu:false nodes with a registered kernel, browser delegation URLs for compute:'browser' and gpu:true, transient non-retained processing, and an AP2 artifact with execution_hash. That is substantive, though it describes the shared platform rather than this node's own behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The name is front-loaded and the content is dense, but the text repeats 'Deterministic OpenChainGraph compute node' redundantly and closes with a long raw FV-status URL/hash that adds little selection value for an agent. Sentences are packed with platform boilerplate rather than tool-specific substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and policy_parameters — the object that actually carries this node's decision inputs — is left as a free-form object whose fields live in an external manifest the agent cannot see. For a compute tool, the description never tells the agent what inputs to supply or what the comparison returns, leaving a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description explains compute modes but largely duplicates the schema enum text, and the pointer to 'the tool's manifest for field names' leaves the opaque policy_parameters object undocumented in both places. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the name/title ('LTC Funding Comparator') and labels it a 'compute node (compliance_control)' but never says what the tool actually computes or compares — long-term care funding options? products? scenarios? The only content beyond the title is infrastructure boilerplate about execution modes and artifacts, so an agent learns the plumbing but not the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling compute/compare tools, and no prerequisites or preconditions. The only directive is an input-handling caution ('Use synthetic or anonymised inputs only'), which is a data constraint rather than usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_ltv_ratiosLTV/CLTV/HCLTV Ratio CalculatorB
Read-onlyIdempotent
Inspect

LTV/CLTV/HCLTV Ratio Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-222-agency-eligibility-matrix. Open at: https://ainumbers.co/chaingraph/art-336-compute-ltv-ratios.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
ltv_pctNo
cltv_pctNo
hcltv_pctNo
value_usedNo
sales_priceNo
appraised_valueNo
regulatory_basisNo
transaction_typeNo
first_lien_amountNo
heloc_credit_limitNo
subordinate_lien_amountNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/self-contained annotations, the description discloses that inputs are processed transiently and not stored, logged, or retained, and that an AP2 artifact with execution_hash is exported for chain provenance. These are genuine behavioral traits not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the transient-processing and artifact-export statements earn their place, but the trailing FV-status receipt hash sentence and the chained-link mechanics are long, low-signal boilerplate for an agent trying to decide whether to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described. The description covers execution modes, data-handling guarantees, and provenance export, so an agent has enough to invoke it correctly; only the actual decision-function semantics of policy_parameters remain opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute mode, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description's restatement of compute:'auto'/'browser' behavior adds nothing beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names a specific resource (LTV/CLTV/HCLTV ratios) and the description states it is a deterministic compute node, so the agent can infer it calculates leverage ratios. However, the body never states what inputs the ratios are derived from, and it does not distinguish this tool from close siblings like compute_dti_ratios or compute_ltc_funding_comparator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode selection but gives no when-to-use guidance, prerequisites, or alternative selection relative to the many other ratio/leverage calculators. The only directive is 'Use synthetic or anonymised inputs only', which is a constraint rather than usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_m3p_monthly_capM3P Monthly Cap CalculatorC
Read-onlyIdempotent
Inspect

M3P Monthly Cap Calculator: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/617-m3p-monthly-cap-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description goes further by disclosing transient processing with no storage/logging/retention, deterministic execution, the gpu:true browser-delegation rule, and the exported AP2 artifact carrying an execution_hash. That is genuine behavioral context beyond the annotations, though return format and failure modes remain unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are near-verbatim repetition ("M3P Monthly Cap Calculator: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node."), and the closing FV-status/URL block is marketing boilerplate rather than invocation-relevant content. Front-loading is present but the payload is buried until the last clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-output-schema computation tool, the description should say what is computed and returned; instead it points to an external "manifest" for field names and offers no domain semantics for the decision function. Runtime plumbing is covered, but the actual tool semantics an agent needs to call it correctly are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters thoroughly; the description's compute-mode explanation largely duplicates the compute enum description. It adds no field-name guidance for policy_parameters and instead defers to an external manifest, which is not helpful at call time.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name identify the resource ("M3P Monthly Cap") and the verb (calculate/compute), but the description never states what the cap is, what inputs drive it, or what rule it applies. Almost all of the text is generic OpenChainGraph runtime plumbing that could be pasted onto any of the hundreds of sibling compute_* tools, so it does not differentiate this tool from compute_mla_mapr or compute_scra_rate_cap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the sibling compute_* tools, nor any domain context (which regulation/policy the monthly cap belongs to). The only guidance offered — "Use synthetic or anonymised inputs only" — is an input constraint, not a selection criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_mla_maprCompute MLA MAPR (closed-end)B
Read-onlyIdempotent
Inspect

Compute MLA MAPR (closed-end): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-232-compute-scra-rate-cap. Open at: https://ainumbers.co/chaingraph/art-231-compute-mla-mapr.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
in_scopeNo
mapr_pctNo
pii_noteNo
bracketedNo
convergedNo
term_daysNo
iterationsNo
scope_noteNo
exceeds_capNo
credit_classNo
mapr_cap_pctNo
method_basisNo
table_sourceNo
payment_countNo
payment_totalNo
periodic_rateNo
table_versionNo
payment_amountNo
amount_advancedNo
mapr_determinedNo
charge_breakdownNo
regulatory_basisNo
max_payment_countNo
payment_structureNo
amount_financed_maprNo
unit_periods_per_yearNo
total_excluded_chargesNo
total_includable_chargesNo
finance_charge_in_scheduleNo
prepaid_includable_chargesNo
bona_fide_fee_claimed_totalNo
payment_count_exceeds_limitNo
approaching_cap_threshold_pctNo
bona_fide_exclusion_availableNo
approaching_cap_threshold_basisNo
application_fee_carve_out_appliedNo
application_fee_carve_out_predicatesNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already declare read-only, idempotent, non-destructive, non-open-world), the description adds genuinely useful behavior: deterministic execution, server-side vs browser delegation semantics, and an explicit data-retention policy ('processed transiently ... not stored, logged, or retained'). It also discloses that the call exports an AP2 artifact carrying an execution_hash for chain provenance. The only deduction is that the compute-mode binding is largely duplicated from the schema's `compute` parameter description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is dense and mostly front-loads purpose, but it packs purpose, execution model, privacy, provenance, a downstream link, a spec URL, and an FV-status hash into one undifferentiated block. The hashed receipt link and 'snapshot, not a subscription' clause consume significant space for marginal invocation value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description does cover execution mode, retention, and provenance. Still missing is the substantive domain content of what the computation yields (the MAPR figure's basis) and any routing guidance versus the sibling tools, which for a compliance compute node is a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, establishing a baseline of 3. The description adds no new meaning for parent_hashes, parent_tool_ids, or policy_parameters, and what it does say about the compute mode repeats the enum description rather than extending it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Compute MLA MAPR (closed-end)') and labels it an 'OpenChainGraph compute node (compliance_mandate)', but that is largely a restatement of the name and title. It never explains what MAPR is, what the closed-end variant computes, or how it differs from close siblings like recompute_mla_mapr_actuarial or classify_mla_charge_inclusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one clear usage constraint ('Use synthetic or anonymised inputs only') and states a downstream consumer ('Output feeds: art-232-compute-scra-rate-cap'), which implies where it fits in a pipeline. However, there is no guidance on when to choose this tool over the actuarial recompute or charge-classification siblings, so selection among alternatives is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_mlr_rebateMLR Rebate CalculatorB
Read-onlyIdempotent
Inspect

MLR Rebate Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-344-compute-mlr-rebate.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
marketNo
de_minimisNo
raw_mlr_pctNo
rebate_owedNo
rebate_amountNo
threshold_pctNo
reporting_yearNo
credibility_tierNo
regulatory_basisNo
constants_versionNo
member_life_yearsNo
rebate_pct_pointsNo
adjusted_earned_premiumNo
adjusted_incurred_claimsNo
three_yr_average_mlr_pctNo
years_included_in_averageNo
current_year_adjusted_mlr_pctNo
credibility_adjustment_pct_pointsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses genuinely useful behavior: default server-side execution vs browser delegation for gpu:true nodes, transient processing with no storage or logging, and export of an AP2 artifact carrying an execution_hash. Those traits are not derivable from the annotations or schema. Minor overlap with the compute parameter description keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Identity and compute-node type are front-loaded, which is good, but the description then restates 'OpenChainGraph compute node' a second time and closes with a long bare URL and 64-character hex hash that consume space without helping selection. The compute-mode sentences are dense but relevant (and partly redundant with the schema).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and rich annotations present, the description doesn't need to explain return values, and it adequately covers execution mode and data handling. What is missing is the substantive core: what the MLR rebate decision function computes and which policy_parameters fields to supply, both punted to an external manifest the calling agent cannot see.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail; the description adds only the compute-mode behavior, which the schema's compute enum description also covers. Critically, the actual decision-function inputs are deferred to 'See the tool's manifest for field names', which is not available, so policy_parameters remains semantically opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a resource (MLR rebate) and classifies it as a deterministic compute node in the compliance_mandate domain, so the agent knows it is a calculator. However, it never explains what an MLR rebate computation actually is or what it takes as input, and it offers no differentiation from the dozens of other compute_* siblings such as compute_mla_mapr or recompute_stock_loan_rebate_fee.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool rather than a sibling, nor any preconditions stated. The only directive is the input-restriction 'Use synthetic or anonymised inputs only', which is a constraint rather than usage guidance. An agent must infer applicability purely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_multilateral_nettingMultilateral Cash NettingC
Read-onlyIdempotent
Inspect

Multilateral Cash Netting: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-260-allocate-ihb-interest. Open at: https://ainumbers.co/chaingraph/art-259-compute-multilateral-netting.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
net_countNo
net_volumeNo
gross_countNo
entity_countNo
gross_volumeNo
table_sourceNo
base_currencyNo
table_versionNo
anchor_surfaceNo
settlement_legsNo
not_legal_adviceNo
regulatory_basisNo
wire_count_savingsNo
entity_net_positionsNo
netting_efficiency_pctNo
wire_count_savings_pctNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses meaningful traits: deterministic execution, server-side vs browser delegation semantics, that gpu:true nodes always delegate, that inputs are processed transiently and not stored or logged, the instruction to use synthetic/anonymised inputs, and that it exports an AP2 artifact carrying an execution_hash for provenance. That is real behavioral value not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The behavioral core is useful, but the block is padded with marketing/infrastructure boilerplate and a long FV-status prose tangent plus a URL that does not help an agent decide or call the tool. It is front-loaded with the name but buries the one useful routing line ('Output feeds: ...') in the middle.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the compute/privacy/provenance behavior is covered. However, for a deterministic computation whose entire substance lives in the opaque 'policy_parameters' object, the description gives no indication of the expected input domain and pushes it to an external manifest, leaving a real gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) in detail. The description only echoes the compute-mode semantics and defers the actual decision-function inputs to 'the tool's manifest', adding no field-level meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the title ('Multilateral Cash Netting') and then pivots entirely to infrastructure metadata (compute binding, artifact export), never stating what the netting calculation actually does or what a 'multilateral cash netting' result consists of. It does not distinguish this tool from close siblings like compute_fx_netting_positions, compute_intercompany_elimination_netting, or compute_gross_to_net, so an agent cannot confidently pick it from name/schema alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on compute mode selection ('auto' vs 'server' vs 'browser'), but that is parameter-level, not tool-selection guidance. The only usage signal is 'Output feeds: art-260-allocate-ihb-interest', which hints at a pipeline position but gives no when-to-use / when-not-to-use criteria versus the many other netting tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_note_h_margin_debit15c3-3a Note H Margin-Debit ComputationB
Read-onlyIdempotent
Inspect

15c3-3a Note H Margin-Debit Computation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-580-15c3-3a-note-h-margin-debit.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
fenceNo
verdictNo
currencyNo
citationsNo
rationaleNo
conditionsNo
not_provenNo
debit_displayNo
margin_sourceNo
rejected_inputsNo
broker_dealer_refNo
debit_minor_unitsNo
minor_unit_exponentNo
clearing_agency_nameNo
indeterminate_reasonNo
computation_date_labelNo
commission_notice_datedNo
margin_required_displayNo
margin_on_deposit_displayNo
margin_required_minor_unitsNo
margin_on_deposit_minor_unitsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real context: deterministic execution, transient processing with no storage/logging/retention, synthetic-input-only requirement, and export of an AP2 artifact carrying execution_hash for provenance. The server-vs-browser delegation rule is also disclosed. This meaningfully exceeds what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The status/mechanics content is front-loaded and the compute-mode rules are clear, but the trailing FV-status URL and inline receipt hash are low-value bulk for an agent deciding how to call the tool. Some sentences duplicate the schema's compute description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and it does cover execution semantics and artifact provenance. What it omits is the substantive purpose — what the Note H margin-debit computation yields and which `policy_parameters` fields are required — leaving the tool's actual analytical output opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters, including the compute enum semantics the description repeats. The description adds little beyond the schema for `parent_hashes`, `parent_tool_ids`, or `policy_parameters` (it merely defers to 'the tool's manifest'). Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and opening line identify a specific verb (compute) and a named regulatory computation (15c3-3a Note H Margin-Debit), so an agent knows the domain. However, the description never explains what the computation actually produces — it pivots immediately to generic compute-node mechanics. Against dozens of sibling `compute_*` tools, there is no differentiation beyond the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode selection (auto/server/browser, gpu:true delegation), which is parameter behavior rather than tool selection. There is no guidance on when to use this tool versus other compute/margin siblings, nor any prerequisites for invoking it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_npvNet Present Value (NPV)C
Read-onlyIdempotent
Inspect

Net Present Value (NPV): OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-324-tvm-npv.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
npvNo
modeNo
noteNo
num_cash_flowsNo
regulatory_basisNo
discount_rate_pctNo
total_undiscountedNo
day_count_conventionNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already covering readOnly/idempotent/non-destructive/closed-world, the description still adds real behavioral context: inputs are processed transiently and not stored, logged, or retained; synthetic/anonymised inputs are recommended; and an AP2 artifact with execution_hash is exported for chain provenance, with an offline-verifiable FV-status snapshot. Those are meaningful traits an agent could not infer from the schema or annotations. It stops short of 5 because none of this is NPV-specific and no failure/error behavior is described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is long but front-loads the one piece of identifying information; the bulk is reused infrastructure boilerplate ('Deterministic OpenChainGraph compute node', compute-binding explanation, retention notice) that is duplicated in the schema. It ends with a raw URL and a 64-character hash plus a disclaimer — high token cost, low selection value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and full annotation set are present, so return values and safety are covered elsewhere. The description does cover compute modes, data handling, and provenance export, which is adequate context for calling the tool. What is missing is domain substance: nothing explains what a valid NPV input looks like or how policy_parameters is populated, so completeness is only minimal-viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; per the rubric this establishes a baseline of 3. The description adds only a loose hint of the chaining model ('execution_hash for chain provenance') and nothing about the policy_parameters fields that actually carry the discount rate and cash flows — an agent must still go to the manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title give the specific verb+resource (compute Net Present Value), and the description identifies it as an OpenChainGraph compute node in the analytics_mandate family. However, beyond restating the title, the prose spends itself on infrastructure (compute modes, artifact export, FV-status) rather than describing what an NPV computation means. It never distinguishes itself from siblings like compute_irr, compute_xirr, compute_bond_duration, or compute_dv01, which are all discounting/valuation computations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the operational compute-mode choice (auto/server/browser, gpu:true delegates to browser), but that is invocation mechanics rather than when-to-use guidance. There is no statement of when to select compute_npv over the many sibling valuation tools (irr, xirr, duration, convexity), and no preconditions or exclusions for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_odnsf_fee_recomputeOverdraft / NSF Fee RecomputationB
Read-onlyIdempotent
Inspect

Overdraft / NSF Fee Recomputation: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/662-odnsf-fee-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, but the description adds real behavioral context beyond them: inputs are processed transiently and not stored, logged, or retained, synthetic inputs are mandated, and it exports an AP2 artifact carrying execution_hash for provenance. That data-handling and output-artifact disclosure is genuinely useful and not derivable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but a large block of the text duplicates the compute-mode semantics already present in the schema, and the trailing FV-status receipt sentence is long and largely irrelevant to tool selection. Several sentences do not earn their place given the description's job.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only compute node with full annotation coverage and no output schema, the description covers safety, data handling, and artifact export. However, it leaves the actual computation opaque and the critical 'policy_parameters' contents undefined ('see the tool's manifest'), so an agent still lacks enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 'compute', 'parent_hashes', 'parent_tool_ids', and 'policy_parameters' in detail. The description adds no parameter-level meaning and even punts on the key field, deferring policy_parameters field names to an external manifest, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name conveys a specific verb+resource (recomputing overdraft/NSF fees), but the body never elaborates on what the recomputation actually does or what domain inputs it expects. The remaining prose describes generic OpenChainGraph compute plumbing that applies to every sibling compute node, so it does not differentiate this tool from the many other recompute_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions selecting this tool over alternatives like compute_interest_accrual_recompute or recompute_* siblings, and no prerequisites. The only invocation guidance is the compute-mode explanation, which merely restates what the 'compute' parameter schema already documents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_oprisk_sma_2026Basel Operational Risk SMA (2026 Reproposal)A
Read-onlyIdempotent
Inspect

Basel Operational Risk SMA (2026 Reproposal): OpenChainGraph compute node (capital_assessment). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-356-compute-oprisk-sma-2026.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rwaNo
noteNo
bucketNo
fc_avgNo
sc_avgNo
ildc_avgNo
rule_statusNo
loss_componentNo
regulatory_basisNo
constants_versionNo
business_indicatorNo
average_annual_lossNo
internal_loss_multiplierNo
operational_risk_capitalNo
use_us_ilm_neutralizationNo
business_indicator_componentNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe-read profile (readOnly, idempotent, non-destructive), but the description adds genuinely useful non-obvious behavior: deterministic computation, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying an execution_hash for chain provenance. It also clarifies that the FV-status receipt is an offline-verifiable snapshot rather than a live subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with the node identity and compute behavior, and each sentence carries operational meaning. There is minor redundancy (the OpenChainGraph/deterministic compute node framing is restated) and the FV-status sentence is verbose, but overall it is tight for the amount of provenance and data-handling information conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no elaboration, and the description covers execution modes, data handling, and provenance adequately. The one residual gap is what policy_parameters should contain, which the description defers to 'the tool's manifest' rather than specifying — acceptable but leaves the core input under-explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — the compute enum, parent_hashes, parent_tool_ids, and policy_parameters are all documented in the schema itself. The description's discussion of compute modes largely restates the compute parameter's schema description rather than adding syntax or format detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource — a Basel Operational Risk SMA (2026 Reproposal) compute node in the capital_assessment category — so an agent knows this performs an operational-risk capital calculation. It does not, however, distinguish itself from adjacent Basel/sibling compute tools like compute_rwa_erba_2026, compute_basel31_delta, or compare_basel_2023_vs_2026, and it never states in plain terms what quantity the SMA computation produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over the many sibling Basel/capital tools, nor any stated preconditions or exclusions. The compute-mode discussion tells the agent how execution works, not when this tool is the right one to call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_options_greeksOptions Greeks CalculatorA
Read-onlyIdempotent
Inspect

Options Greeks Calculator: OpenChainGraph compute node (risk_parameter). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: qfa-04-xva-cva-calculator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/qfa-01-options-greeks.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
d1No
d2No
typeNo
deltaNo
gammaNo
priceNo
rho_per_pctNo
vega_per_pctNo
theta_per_dayNo
delta_risk_bandNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, and the description adds real behavior beyond them: deterministic execution, transient processing with no storage/logging/retention, server-vs-browser delegation semantics, and an exported AP2 artifact carrying execution_hash for chain provenance. The disclosure is rich, though much of it reads as a template shared across all ChainGraph nodes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the compute/privacy/provenance sentences earn their place, but the paragraph is dense boilerplate and the trailing FV-status sentence with a raw URL and 64-char hash is heavy relative to its value for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations are rich, and the chaining/provenance semantics for parent_hashes/parent_tool_ids are reasonably covered. The gap is domain completeness: the agent cannot learn what inputs to place in policy_parameters, which is the core of the computation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; the description only re-explains the compute modes. Critically, the actual decision-function fields (strike, spot, vol, rate, etc.) are left to 'See the tool's manifest', so the most important parameter remains opaque in both description and schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title plus 'OpenChainGraph compute node (risk_parameter)' identify a specific verb (compute) and resource (options Greeks), so an agent knows this is a deterministic Greeks calculation rather than a validation or reporting tool. However, the prose itself essentially restates the title and category and adds no sibling differentiation against the many other compute_* nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives usable context: default compute:'auto' runs server-side, 'browser' forces client-side delegation and returns a URL, and gpu:true always delegates. It also warns to use synthetic/anonymised inputs. But it never states when to choose this node over alternatives, nor any exclusions or prerequisites for the Greeks computation itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_orsa_readiness_packORSA Readiness PackB
Read-onlyIdempotent
Inspect

ORSA Readiness Pack: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/679-orsa-readiness-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: transient processing with no storage/logging/retention, server-side vs browser delegation semantics, and the emitted AP2 artifact with execution_hash for chain provenance. It is not exhaustive about failure modes or latency, but it clearly exceeds the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is front-loaded but the first two clauses are redundant ('ORSA Readiness Pack: OpenChainGraph compute node... Deterministic OpenChainGraph compute node'), and the trailing URL plus FV-status JSON path/hash consume substantial space with limited selection value. The core behavioral sentences are efficient; the packaging is not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter, no-required-field compute node with no output schema and a nested policy_parameters object, the description covers execution location, data handling, and the provenance artifact that is emitted. The main remaining gap is what the resulting ORSA readiness pack reports on, which the schema cannot supply, but the behavioral envelope is otherwise adequately described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description's compute-mode explanation duplicates the schema's enum description and adds nothing about how parent_hashes/parent_tool_ids pair or what belongs in policy_parameters. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node for a compliance_control spec named 'ORSA Readiness Pack', but the opening sentence largely restates the title and never says what the readiness pack actually assesses or contains. It reads as infrastructure metadata (compute modes, provenance artifact) rather than a purpose statement that would let an agent distinguish it from siblings like assess_exam_readiness_pack or run_dora_readiness_diagnostic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a real constraint — 'Use synthetic or anonymised inputs only' — and implicit routing via the compute modes, but no statement of when to choose this tool versus other readiness/compute tools. The compute-mode text is parameter behavior, not usage guidance, leaving the agent to infer the appropriate context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_pack_dependency_mapPack Dependency MapC
Read-onlyIdempotent
Inspect

Pack Dependency Map: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-689-pack-dependency-map.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, so the description goes beyond them usefully: inputs are processed transiently and not stored, logged, or retained; browser mode returns a delegation URL; gpu:true nodes always delegate; and an AP2 artifact with execution_hash is exported for chain provenance. These are genuine behavioral disclosures an agent could not get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with an artifact URL and an FV-status receipt path that consume a large fraction of the description without helping tool selection or invocation. Useful compute/privacy facts are buried mid-paragraph behind branding boilerplate, so it is neither tight nor well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param tool with a nested policy_parameters object and no output schema, the description explains the compute plumbing but never says what the dependency map output contains beyond 'an AP2 artifact', how chaining via parent_hashes/parent_tool_ids works, or what policy_parameters needs. Significant gaps remain for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents the compute enum and its auto/server/browser semantics in full. The description's explanation of compute modes largely duplicates that structured text and adds nothing about parent_hashes, parent_tool_ids ordering, or policy_parameters. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with 'Pack Dependency Map: OpenChainGraph compute node (compliance_control)' — a restatement of the name plus a category label. It never states what a pack dependency map actually is or what it computes, so an agent cannot distinguish its function from siblings like build_chaingraph, emit_chaingraph_artifact, or find_chain. Most of the text is infrastructure/provenance metadata rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational guidance on compute-mode selection and the constraint 'Use synthetic or anonymised inputs only', but never says when this tool should be chosen instead of the other dependency/provenance/compute tools in the catalog. No when-to-use or when-not-to-use routing is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_parametric_trigger_payoutParametric Trigger Payout CalculatorC
Read-onlyIdempotent
Inspect

Parametric Trigger Payout Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-252-validate-cat-bond-trigger-terms. Open at: https://ainumbers.co/chaingraph/art-251-compute-parametric-trigger-payout.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
index_valueNo
trigger_hitNo
table_sourceNo
payout_amountNo
table_versionNo
anchor_surfaceNo
threshold_usedNo
coverage_amountNo
trigger_receiptNo
not_legal_adviceNo
parametric_limitNo
regulatory_basisNo
trigger_fractionNo
trigger_type_usedNo
tier_matched_indexNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds real context: deterministic execution, server-vs-browser delegation semantics, transient non-retention of inputs, and an AP2 artifact with execution_hash. The FV-status snapshot caveat is a useful behavioral note. It is dense but genuinely value-adding beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a dense run-on block repeating 'OpenChainGraph compute node' twice and packing provenance, privacy, routing, and receipt concerns into one paragraph. It is not front-loaded around the actual purpose, and several clauses (long URL, FV-status hash) crowd out the core description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations carry the safety profile, but the description leaves the actual decision function opaque ('See the tool's manifest for field names'). For a compute node with a nested policy_parameters object, that omission is a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description mostly restates the compute-mode behavior and explicitly defers field names to 'the tool's manifest,' adding little beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node and names the artifact it exports plus the downstream tool it feeds, but it never states what a parametric trigger payout computation actually does. The core verb+resource is essentially restated from the name/title, and nothing separates it from the many other compute_* siblings beyond the downstream link.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says inputs are processed transiently and to 'Use synthetic or anonymised inputs only,' which is a constraint rather than usage guidance. There is no statement of when to reach for this tool versus the sibling compute/validate tools, and no preconditions or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_perp_fundingPerp Funding and Carry CalculatorC
Read-onlyIdempotent
Inspect

Perp Funding and Carry Calculator: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-270-perp-funding-carry.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
assetNo
venueNo
pii_noteNo
basis_pctNo
basis_usdNo
table_sourceNo
cadence_hoursNo
table_versionNo
cross_venue_arbNo
hourly_rate_pctNo
basis_perp_priceNo
basis_spot_priceNo
regulatory_basisNo
delta_neutral_carryNo
annualized_basis_pctNo
hl_typical_rate_noteNo
not_financial_adviceNo
simple_annualized_rate_pctNo
funding_rate_pct_per_periodNo
hl_funding_cap_pct_per_hourNo
compound_annualized_rate_pctNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered. The description does add real behavioral context beyond that: inputs are processed transiently and not stored or logged, and an AP2 artifact with execution_hash is exported for provenance. It still omits what the computation actually does or how execution failures are surfaced, so it is additive but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Almost the whole description is infrastructure boilerplate (compute-mode semantics, retention policy, FV-status receipt URL and offline-verification caveat) rather than the analytical purpose. The useful compute/transience facts are buried, and the leading sentence is a tautology, so the text is not front-loaded on what an agent needs to decide and call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema existing means return values need not be explained, but for a calculator with a nested, opaque policy_parameters object and zero required parameters, the description supplies no domain context about what the decision function computes or which fields matter. The result is an agent that knows how to route compute but not what the tool is for.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, making 3 the baseline. The description does not enrich any of them — notably policy_parameters, the field that actually carries the funding/carry inputs, is left to 'See the tool's manifest for field names', which is a pointer away rather than added meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool 'Perp Funding and Carry Calculator' and calls it an 'OpenChainGraph compute node', which largely restates the title and name rather than explaining what funding/carry calculation it performs. It never says what inputs (funding rate, basis, holding period, venue) it consumes or what quantity it produces, so an agent cannot distinguish it from siblings like compute_perp_funding_implied_yield, compute_perp_margin, or model_perp_position.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is extensive guidance on the compute binding (auto/server/browser, gpu:false kernels, browser delegation), but that is invocation mechanics, not when to choose this tool over a sibling. There is no statement of the analytical scenario (e.g. 'use for perpetual futures funding-rate carry between two venues') or prerequisites beyond 'use synthetic or anonymised inputs'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_perp_funding_implied_yieldPerp Funding Implied YieldB
Read-onlyIdempotent
Inspect

Perp Funding Implied Yield: OpenChainGraph compute node (perp_funding_rate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-654-perp-funding-implied-yield.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
venueYes
chainedYes
clamp_pctNo
disclaimerNo
mark_priceNo
scope_noteYes
index_priceNo
domain_errorsYes
position_sideYes
interval_hoursYes
mechanism_noteNo
funding_paymentYes
funding_rate_pctYes
periods_per_yearYes
funding_mechanismYes
interest_rate_pctNo
position_notionalNo
premium_index_pctNo
prev_funding_hashYes
sign_convention_noteNo
funding_payment_directionYes
implied_annual_funding_yield_pctYes

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description adds genuinely useful behavioral context: deterministic execution, transient processing with no storage or logging, and export of an AP2 artifact with execution_hash for provenance. It does not disclose rate limits or required inputs, but it materially exceeds the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded but immediately followed by long boilerplate on compute binding, transient processing, and a raw FV-status URL plus JSON path. The verification text is verbose and buries the actual tool function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full schema coverage, and rich annotations, the description carries a lighter burden; it closes the loop on execution model and data handling. The remaining gap is domain semantics — what an implied yield from perp funding means and what policy_parameters must contain — but that is deferred to the manifest rather than omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description only restates compute-mode behavior already present in the schema and defers policy_parameters field names to 'the tool's manifest', adding no semantics over the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('Perp Funding Implied Yield') and internal node type (perp_funding_rate), but never states what it computes or how an implied yield is derived from funding. Siblings such as compute_perp_funding and compute_perp_margin are not distinguished, leaving the agent to guess at scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no alternatives named, and no exclusion criteria. The only routing content is generic compute-mode mechanics (auto/server/browser), which is configuration, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_perp_marginPerp Margin and Liquidation CalculatorC
Read-onlyIdempotent
Inspect

Perp Margin and Liquidation Calculator: OpenChainGraph compute node (derivatives_margin_health). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-214-perp-position-lifecycle. Open at: https://ainumbers.co/chaingraph/art-213-perp-liquidation-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
sideYes
venueYes
bufferYes
healthYes
imr_pctYes
mmr_pctYes
leverageYes
notionalYes
liq_priceYes
buffer_pctYes
disclaimerYes
mark_priceYes
entry_priceYes
position_sizeYes
initial_marginYes
margin_balanceYes
unrealized_pnlYes
mark_price_noteYes
distance_to_liq_pctYes
maintenance_thresholdYes
portfolio_margin_noteYes
cross_margin_efficiencyYes

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds real operational context beyond them: compute:'auto' runs server-side on Cloudflare Workers, compute:'browser' returns a delegation URL, gpu:true nodes always delegate, inputs are transient and not stored/logged/retained, and an AP2 artifact with execution_hash is exported for chain provenance. These are substantive traits an agent cannot get from the annotations or schema alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is dense infrastructure boilerplate with the useful compute-mode details mid-document and a trailing URL plus FV-status hash that read as noise for tool selection. Front-loading is poor, and several clauses (the snapshot/receipt aside) do not help an agent choose or call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not required, and the description does link the output to art-214-perp-position-lifecycle. But for a derivatives-margin compute node the description never explains what the decision function actually calculates or how policy_parameters drive it, leaving a real gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description echoes the compute enum semantics (auto/server/browser, browser delegation URL) and references chaining via parent_hashes/chain.parent_hashes, adding some meaning. It does not clarify policy_parameters content beyond deferring to 'the tool's manifest,' so it does not exceed the schema's own documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence restates the title and adds a node identifier (derivatives_margin_health), so the agent knows this is a perp margin/liquidation compute node. However, the actual purpose is buried under infrastructure boilerplate, and nothing distinguishes it from siblings such as compute_derivatives_margin_workbench, model_perp_position, or compute_perp_funding. Vague but not misleading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to select this tool versus its many margin/perp siblings. The only usage-adjacent statement is 'Use synthetic or anonymised inputs only,' which is a data constraint rather than a routing rule. No context, no exclusions, no alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_por_liabilities_compositePoR Liabilities ComposerB
Read-onlyIdempotent
Inspect

PoR Liabilities Composer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-280-reserve-proof-verifier. Open at: https://ainumbers.co/chaingraph/art-540-por-liabilities-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
formulaNo
not_provenNo
computed_rootNo
inclusion_verifiedNo
por_input_suppliedNo
regulatory_frameworkNo
composite_determinationNo
reserve_to_liability_ratioNo
liabilities_attestation_sourceNo
reported_total_liabilities_musdNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description then adds genuinely useful behavior: transient processing with no storage/logging/retention, the compute:auto vs browser delegation rule including gpu:true always delegating, and export of an AP2 artifact carrying execution_hash for chain provenance. That is meaningful disclosure beyond the annotations, though retry/failure semantics are unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The information is front-loaded starting with the title and node type, which is good. But it is a dense wall of clauses with redundancy ('OpenChainGraph compute node' repeated) and mixes purpose, infrastructure, privacy, provenance, and an FV-status URL snapshot disclaimer into one block, making it harder to scan than a structured breakdown would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers the execution model, privacy stance, upstream artifact dependency (art-280-reserve-proof-verifier), and provenance export. What is missing is any statement of what the composite represents or how policy_parameters map to the decision function, which the schema only gestures at ('see the tool's manifest').

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema, including the compute enum and the parent_hashes/parent_tool_ids ordering relationship. The description restates compute modes but adds no syntax or semantics beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (PoR liabilities composite) and identifies it as an OpenChainGraph compute node under a compliance_mandate, which gives a rough sense of the operation. However, it never states what the composite actually computes or what decision it supports, and it does not distinguish this from siblings like verify_reserve_proof or verify_proof_of_reserves_consistency. The bulk of the text is about compute infrastructure rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is one usage constraint ('Use synthetic or anonymised inputs only') and the compute-mode semantics explain server vs browser execution, but the description gives no when-to-use guidance relative to alternatives. Nothing tells the agent when this node should be preferred over the reserve-verification siblings or what upstream conditions must hold. Context is implied at best.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_portfolio_varPortfolio Covariance & VaR EngineB
Read-onlyIdempotent
Inspect

Portfolio Covariance & VaR Engine: OpenChainGraph compute node (risk_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: sim-03-basel-rwa-scenario-modeler. Output feeds: qfa-03-stress-test-engine, rca-01-frtb-ima-pre-validator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/qfa-02-portfolio-var-engine.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
n_pathsNo
verdictNo
mc_es_pctNo
conf_levelNo
mc_var_pctNo
es_dollar_mmNo
hist_var_pctNo
param_es_pctNo
param_var_pctNo
var_dollar_mmNo
holding_periodNo
compliance_flagsNo
portfolio_vol_hpNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, non-destructive and closed-world, but the description adds real value beyond them: transient processing with no storage/logging/retention, a mandate to use synthetic or anonymised inputs only, determinism, and the fact that an AP2 artifact with execution_hash is exported for provenance. That is substantive behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is weak: after the title the text is dominated by infrastructure boilerplate, a duplicated compute-mode paragraph, a full SHA-256 FV-status hash and a documentation URL. Those tokens are not actionable for tool selection and dilute the few sentences that matter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and chain provenance plus privacy posture are covered. Still, for a VaR compute node with an opaque nested policy_parameters object the description never explains what must be supplied or how the deterministic kernel's result should be interpreted, leaving a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description explains compute modes, but that content merely duplicates the compute parameter's own schema description, and the central policy_parameters field is left to 'See the tool's manifest for field names' in both places, so the description adds no parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names the resource (Portfolio Covariance & VaR Engine) but the description itself only restates that and labels it an 'OpenChainGraph compute node (risk_control)'. It identifies the domain but never states what computation is performed (parametric covariance VaR? confidence level? horizon?) or how it differs from the closely-named sibling simulate_var_monte_carlo.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the agent learns it sits between sim-03-basel-rwa-scenario-modeler upstream and stress-test/FV-pre-validator downstream, which gives some placement context. However, there is no explicit when-to-use, when-not-to-use, or alternative selection guidance against siblings like simulate_var_monte_carlo or compute_var_backtest_traffic_light.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_pqc_deadline_ladderCNSA 2.0 Deadline Ladder CalculatorC
Read-onlyIdempotent
Inspect

CNSA 2.0 Deadline Ladder Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-387-pqc-deadline-ladder-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rowsNo
summaryNo
reference_dateNo
policy_deadlines_usedNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds genuinely useful behavior: inputs are processed transiently and not stored, logged or retained; compute:'browser' returns a delegation URL instead of a result; gpu:true always delegates; and an AP2 artifact with execution_hash is emitted. It stops short of explaining determinism guarantees or the FV-status receipt's operational role, but this is solid beyond-annotation disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but 'OpenChainGraph compute node' and 'Deterministic OpenChainGraph compute node' repeat the same idea, and the trailing open-URL plus FV-status snapshot sentence is long for what it conveys. Several sentences restate schema content rather than earning their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a calculator whose core parameter object explicitly defers field names to 'the tool's manifest,' the description never explains what a deadline ladder input or output looks like, leaving the agent unable to reason about policy_parameters. Output schema existence excuses explaining return values, but the missing domain semantics and total absence of sibling routing make this incomplete for a 4-parameter nested-object tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description's compute-mode explanation duplicates the enum's own schema description, and it says nothing extra about policy_parameters or the parent_hashes/parent_tool_ids pairing beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause 'CNSA 2.0 Deadline Ladder Calculator: OpenChainGraph compute node (compliance_mandate)' largely restates the title and names a category, but never says what the ladder actually computes or what the output represents. An agent learns it is a deterministic compute node in a compliance graph, not what question it answers, and it is not distinguished from near-neighbours like run_pqc_timeline_fit or check_iso20022_pqc_readiness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no routing against the many sibling PQC/compliance tools. The only usage constraints given are 'use synthetic or anonymised inputs only' and the compute-mode selection, both of which govern how to call it rather than when to prefer it over an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_proxy_voting_recordProxy Voting RecordB
Read-onlyIdempotent
Inspect

Proxy Voting Record: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/676-proxy-voting-record.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuine context beyond that: deterministic execution, transient processing with no storage/logging/retention, server-vs-browser delegation semantics, and an AP2 provenance artifact carrying execution_hash. It omits auth/permission requirements and any latency or rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure boilerplate and a long FV-status URL with a full 64-hex hash that an agent cannot act on, while the domain semantics are never stated. Leading with the name and title restated is redundant. Sentences that would matter (what the node computes) are absent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry return semantics; it does explain the AP2 artifact and execution_hash, which is helpful. But it never describes what the proxy-voting-record decision function produces, and it points to an off-tool manifest for policy_parameters fields, leaving the core computation opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all four parameters, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode prose repeats the schema, and it defers policy_parameters field names to an external manifest rather than adding meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name gives a verb+resource, but the description largely restates it as 'Proxy Voting Record: OpenChainGraph compute node (compliance_control)' and 'Deterministic OpenChainGraph compute node' without saying what the proxy-voting-record computation actually does. The 'compliance_control' tag adds a domain category, but no differentiation from the many other compute_* siblings is provided. Purpose is inferable only from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives implied usage through the compute-mode explanation ('auto' default, 'browser' forces client-side) and a hard input constraint ('Use synthetic or anonymised inputs only'). However, there is no when-to-use/when-not guidance and no routing to alternative tools, and the compute-mode text duplicates the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_pta_verifierPta VerifierB
Read-onlyIdempotent
Inspect

Pta Verifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/mcp.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive/openWorld=false, yet the description still adds meaningful behavioral context beyond them: transient input processing with no storage, logging or retention, the gpu:true browser-delegation rule, and the emission of an AP2 artifact carrying execution_hash. This is genuinely useful disclosure for a compute tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core mechanical sentences are front-loaded and useful, but the trailing 'Open at: … FV-status …' block is dense boilerplate about a snapshot receipt that does not help an agent invoke the tool, and the compute-mode explanation is repeated almost verbatim in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does carry the return-value burden and partially meets it (browser delegation URL, AP2 artifact with execution_hash), but it never states what the verifier's verdict or payload looks like in server/auto mode, which is the primary path. Adequate but with a clear gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are documented in the schema, so the baseline of 3 applies. The description restates the compute-mode semantics but adds no format, ordering, or validation detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a deterministic OpenChainGraph compute node in the compliance_control category and explains its compute modes, but never says what the 'Pta Verifier' actually evaluates or what result it produces. It is clearer about execution mechanics than about the compute's purpose, and it does not distinguish itself from the many sibling compute_* nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real usage constraints: use synthetic or anonymised inputs only, and it explains when server vs browser delegation occurs. However, it never states when an agent should choose this tool over the dozens of other compute/verify siblings, so routing guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_pt_yt_yieldPendle Yield Tokenization Analyzer (PT/YT)C
Read-onlyIdempotent
Inspect

Pendle Yield Tokenization Analyzer (PT/YT): OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-273-pendle-yield.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
pt_priceNo
yt_priceNo
pt_yt_sumNo
yt_leverageNo
table_sourceNo
table_versionNo
investment_usdNo
invariant_holdsNo
pt_discount_pctNo
pt_units_boughtNo
yt_units_boughtNo
days_to_maturityNo
regulatory_basisNo
pt_simple_apr_pctNo
years_to_maturityNo
underlying_apy_pctNo
yt_levered_apy_pctNo
not_financial_adviceNo
yt_break_even_apy_pctNo
yt_margin_of_safety_pctNo
yt_profitable_at_currentNo
pt_profit_at_maturity_usdNo
pt_return_to_maturity_pctNo
pt_implied_fixed_yield_pctNo
yt_payout_if_underlying_stable_usdNo
yt_net_pnl_if_underlying_stable_usdNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, non-destructive, idempotent, closed-world), so the bar is lower, and the description still adds real behavior: browser delegation semantics, transient non-retention of inputs, and emission of an AP2 artifact carrying execution_hash for provenance. The FV-status snapshot and offline verification detail further clarifies that the referenced receipt is not a live subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is redundant boilerplate ('OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node.') and the tail is a URL, a 64-hex hash, and a snapshot disclaimer that crowd out substantive content. What remains is not front-loaded around the actual analytics purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be restated, and the compute/artifact mechanics are covered. But for an analytics node whose real inputs live inside an unspecified policy_parameters bag, the description leaves the agent without any domain-level understanding of what to pass or what the analysis answers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description only elaborates the compute-mode parameter, which the schema already documents in equivalent detail, and it does not explain the opaque policy_parameters object beyond pointing at an external manifest that is not supplied here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name states a specific domain (Pendle PT/YT yield analysis) and the description labels it an 'analytics_mandate' compute node, so an agent can place it roughly. But the body never says what is actually analyzed or produced — no mention of Pendle, PT, YT, yield curves, or implied yield mechanics beyond the title restated. It distinguishes itself only weakly from the hundreds of other compute_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no signal of which sibling analyzer to prefer, and no conditions for selecting compute modes beyond what the schema already says. The only usage-adjacent instruction is 'Use synthetic or anonymised inputs only', which constrains inputs but does not help select the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_raroc_loan_priceRAROC Loan Pricing CalculatorB
Read-onlyIdempotent
Inspect

RAROC Loan Pricing Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-362-compute-raroc-loan-price.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
raroc_pctNo
drawn_musdNo
undrawn_musdNo
value_creatingNo
hurdle_rate_pctNo
capital_approachNo
regulatory_basisNo
value_spread_pctNo
funding_cost_musdNo
break_even_gap_bpsNo
expected_loss_musdNo
gross_revenue_musdNo
operating_cost_musdNo
break_even_spread_bpsNo
economic_capital_musdNo
net_income_after_tax_musdNo
net_income_before_tax_musdNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful context beyond that: the node is deterministic, inputs are processed transiently and 'not stored, logged, or retained', and it emits an AP2 artifact with execution_hash for chain provenance. These are behavioral facts an agent cannot get from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode sentence is front-loaded and useful, but the opening repeats 'OpenChainGraph compute node' twice in consecutive sentences, the compute-mode text near-verbatim duplicates the schema, and the FV-status paragraph is verbose and largely irrelevant to invocation. Structure is workable but has clear waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so those need not be explained. However, for a tool whose real payload is the nested policy_parameters object, the description gives no field names or shape ('see the manifest'), leaving the agent without enough to construct a meaningful call. It is adequate on mechanics but incomplete on the core domain input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; this establishes the baseline of 3. The description largely repeats the compute-mode semantics already in the schema and, for the key domain field, defers to 'the tool's manifest for field names' rather than adding meaning, so it does not earn above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify the resource (RAROC loan pricing) and label it an 'OpenChainGraph compute node', which implies the verb is 'compute'. However, apart from naming the resource, the description never states what the computation actually does or what it returns, and it draws no boundary against the dozens of sibling compute_* tools. It is a recognizable but under-specified purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode selection ('auto' vs 'browser', gpu:true always delegates) and instructs 'Use synthetic or anonymised inputs only', which is real usage context. But it gives no guidance on when an agent should reach for this tool versus sibling RAROC/loan-pricing or other compute_* tools, so selection remains inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_rbc_action_levelNAIC RBC Action Level CalculatorB
Read-onlyIdempotent
Inspect

NAIC RBC Action Level Calculator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-253-run-illustration-selfsupport-test. Output feeds: art-257-calculate-claims-stp-economics. Open at: https://ainumbers.co/chaingraph/art-254-compute-rbc-action-level.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
insurer_typeNo
table_sourceNo
rbc_ratio_pctNo
table_versionNo
not_legal_adviceNo
regulatory_basisNo
action_level_codeNo
action_level_labelNo
two_year_rbc_ratioNo
prior_year_rbc_ratioNo
trend_test_triggeredNo
trend_test_applicableNo
threshold_breached_pctNo
total_adjusted_capitalNo
action_levels_referenceNo
action_level_descriptionNo
authorized_control_levelNo
headroom_to_next_level_pctNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real behavioral context beyond them: transient processing with no storage/logging/retention, the auto/server/browser execution modes with gpu:true always delegating, and an exported AP2 artifact carrying execution_hash for provenance. What is missing is any statement of what the computed result looks like despite the artifact export.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is fine and the operational content is relevant, but there is noticeable redundancy ('compute node (compliance_mandate). Deterministic OpenChainGraph compute node') and the sentence about the FV-status snapshot/offline receipt is a tangent that does not help an agent call the tool. Roughly a third of the text is chain boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value description is not required, and the chain wiring, execution modes, and data-handling policy are covered well. The gap is domain completeness: with 4 optional params, no required fields, and 80+ sibling calculators including compute_rbc_action_level_private, the description never says what this tool computes relative to those, leaving selection ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the description largely restates the schema's own compute-mode wording ('auto' = server for gpu:false with registered kernel, 'browser' = delegation URL). It adds nothing on parent_hashes/parent_tool_ids beyond what the schema already says, and policy_parameters field names are explicitly deferred to an external manifest. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name identify it as a NAIC RBC Action Level calculator, which is a specific resource, but the description body never explains what an action level is or what the calculation decides; it is dominated by OpenChainGraph compute-node mechanics. It also restates the title verbatim (name + 'compute node'), which is tautological. An agent can tell it is a calculator but not precisely what it returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit input constraint ('Use synthetic or anonymised inputs only') and places the tool in a chain via upstream/downstream artifact ids. However, it gives no when-to-use vs. when-not guidance, and notably does not distinguish it from the close sibling compute_rbc_action_level_private or the other RBC/exposure calculators. Usage is only implied by the chain wiring.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_rbc_action_level_privatePrivate-Input NAIC RBC Action LevelB
Read-onlyIdempotent
Inspect

Private-Input NAIC RBC Action Level: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-414-compute-rbc-action-level-private.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
table_versionNo
not_legal_adviceNo
regulatory_basisNo
action_level_codeNo
action_level_labelNo
action_level_descriptionNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds genuinely useful behavior beyond them: transient processing with no storage, logging or retention, and export of an AP2 artifact with execution_hash for chain provenance. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and compute-mode semantics are front-loaded, but the closing FV-status sentence ('a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched') is verbose and largely boilerplate, and the compute-mode explanation duplicates the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich schema, an output schema present, and full annotations, the description supplies the missing non-structured context: privacy handling, chaining, and provenance export. The only gap is the absence of any explicit positioning against the public compute_rbc_action_level sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute mode, parent_hashes/parent_tool_ids chaining, and policy_parameters are already fully documented in the schema. The description restates the compute:auto/browser behavior rather than adding syntax or field-level meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first phrase identify the resource (NAIC RBC Action Level) and the tag (analytics_mandate compute node), so the agent knows this computes an RBC action level. However the body is dominated by infrastructure boilerplate (compute binding, retention, provenance) and never differentiates it from the sibling compute_rbc_action_level other than by the word 'Private-Input'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one real usage rule — 'Use synthetic or anonymised inputs only' — which is valuable context for a private-input tool. But it offers no guidance on when to choose this over compute_rbc_action_level, nor on the private/public distinction that its name implies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_recordkeeping_completeness_mapperRecordkeeping Completeness MapperB
Read-onlyIdempotent
Inspect

Recordkeeping Completeness Mapper: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/675-recordkeeping-completeness-mapper.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the safety profile is covered. The description goes beyond them usefully: transient processing with no storage/logging/retention, the server-vs-browser execution split with gpu:true always delegating, and the emitted AP2 artifact with execution_hash for provenance. This is genuine behavioral context an agent cannot get from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool identity and execution modes, but the second sentence repeats 'OpenChainGraph compute node' after the first already said it, and the trailing FV-status URL/hash blob is long and only marginally actionable. Several sentences earn their place; a couple do not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does describe the export (AP2 artifact + execution_hash), which helps. But the tool's principal input, policy_parameters, is a free-form nested object whose field names are deferred to 'the tool's manifest' — leaving the actual computational inputs undocumented in both schema and description. Adequate for execution mechanics, incomplete for the decision-function payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode semantics without adding format or linkage details beyond what the schema says, and says nothing about the ordering requirement between parent_hashes and parent_tool_ids. Baseline 3 is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as an OpenChainGraph compute node in the 'analytics_mandate' domain that produces a completeness mapping and exports an AP2 artifact with execution_hash. However, 'Recordkeeping Completeness Mapper' is essentially the tool name restated — it never says what 'completeness' is measured over, what the mapper actually computes, or how it differs from the dozens of sibling validators/checkers (e.g. validate_qfc_recordkeeping_file, check_official_statement_completeness). Vague purpose rather than a specific verb+resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Only usage constraint given is 'Use synthetic or anonymised inputs only' plus compute-mode selection. There is no guidance on when to reach for this tool vs. the many neighbouring recordkeeping/reconciliation tools, and no prerequisites or preconditions for the parent_hashes chaining path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_reg_z_appendix_j_aprReg Z Appendix J APR SolverB
Read-onlyIdempotent
Inspect

Reg Z Appendix J APR Solver: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-332-build-amortization-schedule. Output feeds: art-217-trid-apr-accuracy. Open at: https://ainumbers.co/chaingraph/art-215-reg-z-appendix-j-apr.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
apr_pctNo
bracketedNo
convergedNo
iterationsNo
num_paymentsNo
advance_totalNo
payment_totalNo
periodic_rateNo
finance_chargeNo
periods_per_yearNo
regulatory_basisNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real behavioral context on top: deterministic compute, the auto/server/browser mode semantics, gpu:true browser delegation, transient non-stored/non-logged inputs, and an emitted AP2 artifact carrying execution_hash. The only notable omission is latency/rate behavior and cold-start characteristics of the compute node.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core content (modes, data handling, chain provenance) is front-loaded and useful, but the closing FV-status sentence about a snapshot receipt verifying offline is verbose boilerplate that does not help an agent select or invoke this tool. The name restatement in the first clause is also redundant with the title field.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich annotations, the description need not explain return values, and it does supply the execution model, delegation behavior, privacy posture, and upstream/downstream artifact IDs an agent needs to place the call. The main residual gap is that policy_parameters content is deferred entirely to an external manifest without even a hint of the required Reg Z fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including a documented enum and full definitions for parent_hashes/parent_tool_ids/policy_parameters, so the baseline is 3. The description repeats the compute-mode semantics already in the schema and otherwise defers with 'See the tool's manifest for field names', adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name pair ('Reg Z Appendix J APR Solver') gives a verb and a regulatory resource that is unique among siblings, but the description body never explains what the APR computation actually is or what the solver produces. It opens by restating the name and then pivots immediately to infrastructure framing ('OpenChainGraph compute node (compliance_mandate)'), so the domain purpose is left at the label level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through pipeline placement: it 'Consumes upstream artifacts from art-332-build-amortization-schedule' and 'Output feeds: art-217-trid-apr-accuracy'. That tells the agent where this sits in a chain, but there is no explicit when-to-use/when-not guidance versus near neighbors like verify_trid_apr_accuracy, compute_trid_tolerance_cure or classify_qm_apr_apor_spread.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_remittance_disclosureRemittance Disclosure Calculator (Reg E Subpart B)B
Read-onlyIdempotent
Inspect

Remittance Disclosure Calculator (Reg E Subpart B): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-249-compare-corridor-cost. Open at: https://ainumbers.co/chaingraph/art-248-compute-remittance-disclosure.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
feesNo
pii_noteNo
table_sourceNo
table_versionNo
anchor_surfaceNo
disclosure_typeNo
regulatory_basisNo
destination_countryNo
total_to_sender_usdNo
transfer_amount_usdNo
amount_received_destNo
destination_currencyNo
estimate_permissibleNo
accounting_identity_okNo
exchange_rate_disclosedNo
required_fields_completeNo
accounting_identity_deltaNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuine behavioral context beyond them: deterministic execution, transient processing with no storage/logging/retention, and an AP2 artifact with execution_hash for chain provenance. That goes meaningfully past the structured safety hints, though it omits recalc/failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is dominated by generic ChainGraph boilerplate that is identical across every compute node, and it even repeats itself ('OpenChainGraph compute node' twice in the first two sentences). The FV-status hash/URL line is noise for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the provenance/compute-mode coverage is decent. But the tool's decision inputs (policy_parameters) are undocumented anywhere in the definition, which is a significant gap for a computation tool taking nested objects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids; the description only restates the compute-mode behavior. The critical policy_parameters object is left opaque ('See the tool's manifest for field names') in both schema and description, so no additional meaning is supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line names a specific resource and regime—a remittance disclosure calculator under Reg E Subpart B—so an agent knows what domain the tool operates in, and the provenance line ('Exports an AP2 artifact', 'Output feeds: art-249-compare-corridor-cost') adds further specificity. However, it never differentiates from the near-identical sibling check_reg_e_remittance_disclosure, so 'calculator' vs 'checker' remains ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a real usage constraint ('Use synthetic or anonymised inputs only') and detailed compute-mode guidance, but that compute-mode text is duplicated in the schema. Nothing tells the agent when to reach for this tool rather than check_reg_e_remittance_disclosure or the downstream compare_corridor_cost, and there are no stated prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_rule_605_publication_composerRule 605 Publication ComposerC
Read-onlyIdempotent
Inspect

Rule 605 Publication Composer: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/682-rule-605-publication-composer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, and the description still adds real substance: the auto/server/browser compute-mode behavior, browser delegation for gpu:true nodes, transient non-stored processing, and the AP2 execution_hash export. This goes well beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens with the name then repeats the phrase 'OpenChainGraph compute node' twice in adjacent sentences, and closes with an FV-status URL plus offline-receipt jargon that does not help an agent call the tool. The compute-mode explanation earns its place, but there is noticeable redundancy and trailing noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must carry return-value weight, and it partially does by stating it exports an AP2 artifact with execution_hash. However, for a tool whose core is a decision function over policy_parameters, it defers to 'the tool's manifest for field names' and never explains the computed result, leaving a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description overlaps on compute modes but adds nothing about the opaque policy_parameters object, which is the actual decision input — baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource as an 'OpenChainGraph compute node (regulatory_reporting)' and restates the title, but never says what Rule 605 publication composing actually computes or produces. It distinguishes itself from the ~600 siblings only by the generic platform boilerplate, not by any Rule-605-specific function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no reference to alternatives among the many compute_* siblings. The only directive is an input constraint ('Use synthetic or anonymised inputs only'), which is a safety rule rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_rwa_erba_2026ERBA / Standardized RWA Calculator (Basel Endgame 2026)A
Read-onlyIdempotent
Inspect

ERBA / Standardized RWA Calculator (Basel Endgame 2026): OpenChainGraph compute node (capital_assessment). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-355-erba-standardized-rwa-calculator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rule_setNo
rule_statusNo
per_exposureNo
table_sourceNo
aggregate_rwaNo
disambiguationNo
exposure_countNo
rule_set_labelNo
constants_versionNo
average_risk_weightNo
total_exposure_amountNo

TDQS

A3.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive, and closed-world behavior, and the description adds substantial extra context: deterministic execution, default server-side computation, browser delegation rules, transient processing with no storage or logging, synthetic-input requirements, and AP2 artifact export with execution_hash for provenance. No statement contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the tool title and purpose, then moves into compute-binding details. However, it contains redundancy such as repeating 'OpenChainGraph compute node' after the title and includes a long URL plus FV-status prose that, while potentially useful for provenance, makes the definition less concise than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers compute modes, privacy, and provenance well. But for a nested-object regulatory calculator, the policy_parameters field is deferred to an external manifest not included here, leaving the actual calculation inputs underspecified for an agent trying to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds some behavioral framing around compute modes and chain provenance, but it mostly repeats the schema and does not add new syntax or field-level meaning; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and calculation domain: ERBA / Standardized RWA Calculator (Basel Endgame 2026) as an OpenChainGraph compute node for capital_assessment. This is clear enough to distinguish a Basel RWA calculator from generic tools, but it does not differentiate this tool from sibling RWA calculators such as compute_rwa_scenarios or compute_basel31_delta.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute modes and states that synthetic or anonymised inputs should be used, but it never says when to choose this tool over alternatives. There is no explicit when-to-use or when-not-to-use guidance relative to the many sibling capital and RWA tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_rwa_scenariosBasel RWA Scenario ModelerB
Read-onlyIdempotent
Inspect

Basel RWA Scenario Modeler: OpenChainGraph compute node (capital_assessment). Regulatory deadline: 2027-01-01 (Basel 3.1 output floor — UK PRA PS1/26 January 1, 2027). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-07-basel31-reporting-delta-calculator. Output feeds: ml-03-timeseries-anomaly-detector, qfa-02-portfolio-var-engine, rca-01-frtb-ima-pre-validator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/sim-03-basel-rwa-scenario-modeler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
warningsNo
airb_pctsNo
firb_pctsNo
sacr_pctsNo
airb_rwa_bnNo
firb_rwa_bnNo
sacr_rwa_bnNo
floor_rwa_bnNo
floor_bindingNo
airb_floored_bnNo
firb_floored_bnNo
percentile_labelsNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive behavior, but the description adds genuinely useful traits beyond them: transient processing with no storage/logging/retention, deterministic execution, AP2 artifact export with execution_hash for provenance, and browser-delegation behavior for gpu:true nodes. These are concrete operational facts an agent could not derive from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core constraints (compute modes, transient processing, chaining) are reasonably front-loaded, but the text is padded with a regulatory deadline, an outbound URL, an artifact-list dump, and a long FV-status hash string that consume space without helping tool selection. Roughly half the content earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, nested-parameter compute node with an output schema (so return values need not be explained), the description covers compute binding, provenance chaining, privacy handling, and upstream/downstream artifacts. The main gap is that policy_parameters field semantics are outsourced to an external 'manifest' not present here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description largely restates the compute-mode semantics already in the schema and defers policy_parameters field names to 'the tool's manifest', adding no new parameter meaning. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the tool as a 'Basel RWA Scenario Modeler' compute node under the 'capital_assessment' domain, which tells an agent it models Basel RWA scenarios. However, it never states what the tool actually computes or returns for a scenario (e.g. projected RWA, output-floor impact), leaning on generic 'OpenChainGraph compute node' framing rather than a specific verb+resource pair.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a data-handling instruction ('Use synthetic or anonymised inputs only') and enumerates upstream/downstream artifacts, but gives no when-to-use guidance relative to the many sibling scenario/RWA tools (e.g. compute_basel31_delta, simulate_output_floor, compute_rwa_erba_2026). The agent is left to infer selection from artifact IDs alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_scra_rate_capCompute SCRA Rate CapB
Read-onlyIdempotent
Inspect

Compute SCRA Rate Cap: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-231-compute-mla-mapr. Open at: https://ainumbers.co/chaingraph/art-232-compute-scra-rate-cap.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
scra_noteNo
exceeds_capNo
loan_balanceNo
table_sourceNo
table_versionNo
covered_monthsNo
capped_rate_pctNo
excess_forgivenNo
excess_rate_pctNo
regulatory_basisNo
original_rate_pctNo
effective_rate_pctNo
retroactive_creditNo
total_interest_at_capNo
servicemember_notifiedNo
interest_delta_forgivenNo
is_pre_service_obligationNo
total_interest_at_original_rateNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/no-destructive/idempotent, but the description adds real context beyond them: inputs are processed transiently and not stored, logged or retained; synthetic or anonymised inputs only; execution_hash-bearing AP2 artifact is exported; and the FV-status receipt is a verifiable offline snapshot rather than a live subscription. That is meaningful behavioural disclosure for a compliance compute node.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with name and provenance, and the compute-mode sentence is useful, but it is padded with repetitive boilerplate ('Deterministic OpenChainGraph compute node', repeated identity) and a raw FV-status hash URL that adds bulk without helping selection. Roughly half the text is infrastructure chrome rather than tool-selection information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-explained, and the execution-mode, chaining and data-handling story is covered. What is missing is domain substance: what the SCRA cap is applied to, what policy_parameters should contain, and any indication of expected scale or failure modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes and parent_tool_ids; the description's compute-mode sentence largely restates it. The one real gap is policy_parameters, whose field names are deferred to an external manifest and are not enumerated in either schema or description, so the description does not compensate for the most opaque input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title pair states a specific verb plus resource ('Compute SCRA Rate Cap'), and the description identifies it as an OpenChainGraph compliance-mandate compute node. However, the body never explains what the SCRA rate cap computation actually does or what it returns substantively, so an agent must already know the SCRA domain to place it. It distinguishes itself as a compute node but not against the many other compute_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives operational routing guidance ('compute:auto' server-side vs 'browser' delegation, gpu:true always delegates), which is genuinely useful for invocation. But it gives no guidance on when to choose this tool over adjacent compliance-mandate computations, nor any dependency/precondition rules beyond naming one upstream artifact.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_settlement_efficiency_kpiSettlement Efficiency KPI EngineC
Read-onlyIdempotent
Inspect

Settlement Efficiency KPI Engine: OpenChainGraph compute node (model_governance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-78-csdr-penalty-calculator, art-80-ssi-conformance-checker, art-79-settlement-fail-predictor. Output feeds: cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-84-settlement-efficiency-kpi.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
benchmarkNo
fail_rateNo
period_labelNo
settlement_rateNo
settlement_gradeNo
total_instructionsNo
total_penalty_costNo
buyin_triggered_countNo
on_time_allocation_rateNo
ssi_golden_coverage_pctNo
fail_duration_distributionNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, but the description adds substantive behavior beyond them: transient processing with no storage, logging or retention; server-vs-browser execution semantics including the delegation-URL return path for gpu:true nodes; and the AP2 artifact with execution_hash for chain provenance. Those are exactly the traits an agent needs and cannot get from annotations. It falls short of 5 only because return shape and error/degradation behavior are left implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening two sentences restate the same fact ('compute node / deterministic compute node'), and the closing URL plus a 64-character FV receipt hash plus a note that the receipt verifies offline is off-topic boilerplate that does not help invocation. The provenance/chain information is useful but is buried after the redundant lead, so the description is both bloated and poorly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and annotations cover the safety profile. The description does cover execution model, data-handling posture, chaining inputs and downstream consumer, which is a fair amount for a compute node. What is missing is the actual subject matter — which KPIs and which policy_parameters fields — leaving the agent unable to judge applicability from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's compute-mode text largely repeats the 'compute' enum description already in the schema, and it never explains what fields belong in policy_parameters (it defers to 'the tool's manifest'). It adds only marginal meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with the title restated ('Settlement Efficiency KPI Engine: OpenChainGraph compute node') and a near-duplicate sentence ('Deterministic OpenChainGraph compute node'), which is tautological rather than explanatory. It never says which settlement-efficiency KPIs are computed or what the decision function measures, so an agent cannot distinguish it from siblings like compute_custody_segregation_ratio or classify_settlement_finality. The upstream artifact names (csdr-penalty-calculator, ssi-conformance-checker, settlement-fail-predictor) hint at domain but not at output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a real constraint — 'Use synthetic or anonymised inputs only' — but no when-to-use/when-not guidance and no routing to sibling tools despite the enormous sibling list containing obvious alternatives. Compute-mode selection is described, but that is parameter behavior, not usage guidance. Nothing tells the agent under what business conditions this tool is the right call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_short_sale_locate_ssr_checkerShort-Sale Locate and SSR CheckerC
Read-onlyIdempotent
Inspect

Short-Sale Locate and SSR Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/671-short-sale-locate-ssr-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behaviour, but the description adds real value beyond them: it explains the compute/server/browser delegation model, states inputs are processed transiently and not stored or logged, and discloses that an AP2 artifact with execution_hash is exported for chain provenance. It still omits failure behaviour, but this is meaningful added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is dominated by generic compute-node boilerplate and a raw URL plus a 64-hex FV-status path that do not help an agent decide whether to call this tool. The actual domain purpose is never front-loaded, and several sentences exist only to describe platform plumbing shared by all compute_* siblings.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compliance decision node whose real inputs live inside an opaque free-form policy_parameters object and which has no output schema, the description gives an agent no idea what to pass or what result to expect. It covers the execution substrate thoroughly but leaves the short-sale locate/SSR domain semantics entirely unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute mode, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode discussion merely echoes the schema's enum documentation and adds nothing about the parent-hash chaining or what fields belong in policy_parameters (it defers to 'the tool's manifest'). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the name/title ('Short-Sale Locate and SSR Checker') and then spends its words on infrastructure boilerplate about OpenChainGraph compute nodes. It never says what the check actually determines (e.g. Reg SHO locate availability, threshold-security/SSR status on a given symbol), and it draws no distinction from the many sibling compute_* compliance nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance relative to alternatives appears. The only operational instruction is a data-handling constraint ('use synthetic or anonymised inputs only'), which is a precondition rather than usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_stock_token_collateral_haircutHalt + Staleness Collateral HaircutB
Read-onlyIdempotent
Inspect

Halt + Staleness Collateral Haircut: OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 505-tokenized-collateral-eligibility-checker, 508-repo-haircut-collateral-calculator. Open at: https://ainumbers.co/chaingraph/art-320-rhc-collateral-haircut.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
feed_staleNo
base_haircutNo
extra_haircutNo
final_haircutNo
liquidation_riskNo
underlying_haltedNo
adjusted_collateral_valueNo
sequencer_down_within_graceNo
sequencer_down_grace_expiredNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still contributes real behavior: deterministic computation, transient processing with no storage/logging/retention, server vs browser delegation semantics, and export of an AP2 artifact with execution_hash. It does not cover rate limits or error behavior, but the added context is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the title and node type, but it is dominated by infrastructure boilerplate (compute binding, privacy, FV-status snapshot) and ends with a very long receipt sentence of marginal value. Several sentences earn their place, but the density and length dilute the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and 100% parameter coverage plus annotations carry most of the structured burden. The description is complete enough for invocation, adding chaining inputs and data-handling constraints, though the actual computation logic and required policy_parameters fields remain unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description only restates the compute-mode semantics already present in the schema and adds no new meaning for parent_hashes, parent_tool_ids, or policy_parameters, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the domain (collateral_mandate) and labels the tool a deterministic compute node, and the title 'Halt + Staleness Collateral Haircut' conveys the concept. However, it never plainly states the verb+resource (e.g. 'computes a haircut on tokenized-stock collateral accounting for trading halts and stale prices'); the reader must infer the operation from the name/title. Sibling relationships are partially distinguished via the named upstream artifacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode routing (auto/server/browser) and warns to use 'synthetic or anonymised inputs only', but it never says when to reach for this tool versus alternatives such as calculate_repo_haircut, compute_basel_haircut_adjusted_exposure, or the 508 upstream. Consumption of specific upstream artifacts is a weak, implicit ordering hint rather than explicit when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_stress_test_scenariosStress Test EngineA
Read-onlyIdempotent
Inspect

Stress Test Engine: OpenChainGraph compute node (risk_parameter). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: qfa-02-portfolio-var-engine. Output feeds: rca-01-frtb-ima-pre-validator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/qfa-03-stress-test-engine.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
warningsNo
max_drawdownNo
normal_var_pctNo
scenario_lossesNo
stressed_es_pctNo
worst_case_lossNo
compliance_flagsNo
scenario_detailsNo
stressed_var_pctNo
stress_multiplierNo
worst_case_scenarioNo
recovery_days_estimateNo

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses deterministic execution, server versus browser delegation behavior, transient data handling with no storage or logging, synthetic-input requirements, and AP2 artifact export with execution_hash for provenance. This adds substantial operational context that the annotations alone do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the engine identity and compute behavior, but it is dense and contains repeated phrasing like 'OpenChainGraph compute node' plus a lengthy FV-status hash and snapshot explanation. The core invocation-relevant content is present, but the size is more than necessary for an agent selecting the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema and annotations, the description does not need to explain return values, and it covers execution modes, data handling, provenance, and chain placement well. It remains somewhat vague about what stress-test scenarios actually compute, but that gap is partially offset by the rich structured and output schema context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the compute enum and the roles of parent_hashes and parent_tool_ids. The description restates compute-mode behavior but does not add meaning beyond what the schema provides, making the baseline of 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a deterministic OpenChainGraph compute node for the stress test engine, specifically for risk_parameter computation. It gives useful chain context via upstream and downstream tool IDs, though it does not explicitly contrast itself with sibling stress-test tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute mode section explains invocation mechanics, but there is no explicit guidance on when to use this tool versus alternatives such as run_liquidity_stress_test or simulate_frtb_es. The upstream/downstream references imply its place in a workflow chain, which is useful but not a full usage policy.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_tempo_mainnet_fee_capacityTIP-1010 Mainnet Fee & Payment-Lane Capacity CalculatorB
Read-onlyIdempotent
Inspect

TIP-1010 Mainnet Fee & Payment-Lane Capacity Calculator: OpenChainGraph compute node (treasury_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-389-tempo-mainnet-fee-capacity.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
summaryNo
line_itemsNo
protocol_versionNo
block_time_secondsNo
protocol_parameters_usedNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the auto/server/browser compute-mode semantics including browser delegation URLs, gpu:true forcing delegation, transient non-retained processing, and an AP2 artifact export carrying execution_hash.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is front-loaded with the title, but it is padded with repeated boilerplate ('Deterministic OpenChainGraph compute node' essentially stated twice), an inline URL, and a lengthy FV-status receipt string that crowds out the actual decision-function context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be described, and the compute/retention/artifact behavior is covered. However, the tool's real inputs live in the free-form policy_parameters object, and the description defers their meaning to an external manifest, so an agent still cannot confidently supply them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute modes but adds nothing beyond the schema, and even punts the most important parameter (policy_parameters) to a separate 'manifest', leaving no extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening sentence name a specific resource and action: a TIP-1010 Mainnet fee and payment-lane capacity calculator running as an OpenChainGraph compute node. That is clear enough to identify the tool, but it never distinguishes itself from close siblings such as model_tempo_payment_economics, model_tempo_gas_economics, or compute_discount_window_capacity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to reach for this tool versus the many tempo/fee/capacity siblings. The only usage-adjacent instruction is 'Use synthetic or anonymised inputs only', which is a data-hygiene rule, not tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_trid_tolerance_cureTRID Fee Tolerance and CureC
Read-onlyIdempotent
Inspect

TRID Fee Tolerance and Cure: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-216-trid-tolerance-cure.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
violationsNo
cure_amountNo
fee_analysisNo
cure_requiredNo
ten_pct_excessNo
regulatory_basisNo
total_violationsNo
ten_pct_thresholdNo
ten_pct_violationNo
ten_pct_bucket_le_sumNo
ten_pct_bucket_increaseNo
zero_tolerance_violationsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds genuine behavioral context beyond them: server-side vs browser delegation semantics, transient processing with no storage/logging/retention, a synthetic-input warning, and an AP2 artifact carrying execution_hash for provenance. That is meaningful disclosure of what the node does to inputs and what it emits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dominated by boilerplate (compute-mode rules, transient-processing notice, AP2 provenance, FV-status URL) that largely duplicates the schema and annotation content. It is not front-loaded with the tool's actual purpose, and the title is repeated verbatim in the first clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter compute node with an output schema, the execution and provenance behavior is reasonably covered, and the output schema removes the need to describe return values. But the core question — what the decision function computes and how policy_parameters fields are shaped — is deferred to an external manifest that the agent cannot see.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description adds nothing about parameter semantics and explicitly punts field names to 'the tool's manifest,' so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name names a specific regulatory computation (TRID fee tolerance and cure), which is domain-meaningful. However, the description itself never explains what the computation calculates or what its output means — it opens by restating the title verbatim ('TRID Fee Tolerance and Cure: OpenChainGraph compute node') and then pivots to infrastructure boilerplate. It also does nothing to separate it from nearby siblings like verify_trid_apr_accuracy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to invoke this node versus alternatives (e.g. verify_trid_apr_accuracy or check_qm_points_and_fees). The only conditional logic offered is about compute mode (auto/server/browser), which is execution plumbing, not task-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_va_funding_fee_residualVA Funding Fee and Residual IncomeC
Read-onlyIdempotent
Inspect

VA Funding Fee and Residual Income: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-225-va-funding-fee-residual.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dtiNo
pii_noteNo
funding_feeNo
residual_incomeNo
regulatory_basisNo
table_source_residualNo
table_version_residualNo
table_source_funding_feeNo
table_version_funding_feeNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description does add genuinely useful context beyond the annotations — transient processing with no storage/logging/retention, the synthetic-inputs-only constraint, and the exported AP2 artifact with execution_hash for provenance. However, it omits domain behavior like what drives the fee/residual calculation, so it remains platform-level rather than task-level.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The response is dominated by repeated infrastructure boilerplate (compute modes explained twice, once in prose and again in the schema), a long raw URL, and a 64-character hash. The one genuinely tool-specific sentence — the title — is front-loaded but adds no information. Substantial text is spent on content that is not specific to this node.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, but for a compliance computation node the description should explain the decision function's intent and what policy_parameters fields matter. Instead it defers entirely to 'See the tool's manifest,' leaving the domain semantics undocumented. The infrastructure detail is thorough while the actual task content is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description merely repeats the compute-mode semantics already spelled out in the enum description and says nothing new about parent_hashes, parent_tool_ids, or the contents of policy_parameters beyond pointing at a manifest. It neither compensates nor detracts, so the neutral baseline applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads by restating the name/title ('VA Funding Fee and Residual Income') and then pivots entirely to OpenChainGraph platform boilerplate. It never states what the computation actually produces — e.g. a VA funding fee percentage/amount or a residual-income qualification result — and unlike siblings such as compute_aca_affordability_safe_harbor or compute_dti_ratios it offers no domain specifics. An agent knows the topic area but not the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to the many sibling compute_* tools, no prerequisites, and no exclusion criteria. The only conditional language concerns transport mechanics (compute:'auto' vs 'browser'), not task selection. Nothing routes the agent between this tool and adjacent VA/income tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_var_backtest_traffic_lightVaR Backtesting Traffic-Light Zone CalculatorC
Read-onlyIdempotent
Inspect

VaR Backtesting Traffic-Light Zone Calculator: OpenChainGraph compute node (capital_assessment). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-429-var-backtest-traffic-light.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
zoneNo
sourceNo
multiplierNo
full_windowNo
rule_statusNo
window_daysNo
disambiguationNo
exception_countNo
truncated_to_250No
constants_versionNo
exception_indicesNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: transient processing with no storage/logging, a synthetic-inputs-only constraint, server-vs-browser delegation semantics, and AP2 artifact export with execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening repeats the title verbatim and then repeats itself again ('OpenChainGraph compute node' / 'Deterministic OpenChainGraph compute node'). Much of the body is generic infrastructure boilerplate plus a URL and FV-status receipt, none of which helps an agent call the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, return values need not be explained, and the compute-mode and provenance behavior is covered. However, for a nested-object domain tool the description omits any explanation of the traffic-light computation or the policy_parameters contract, leaving the core domain semantics unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the four parameters are already documented in the schema; the description only echoes the compute-mode semantics. The critical policy_parameters object remains opaque in both places ('See the tool's manifest for field names'), so no domain field meaning is added. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('VaR Backtesting Traffic-Light Zone Calculator') and labels it a compute node in the capital_assessment category, but never explains what a traffic-light zone decision actually is or how it differs from siblings like compute_portfolio_var or simulate_var_monte_carlo. An agent can identify the resource but gets no functional elaboration beyond the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on HOW to invoke (compute:"auto" vs "server" vs "browser"), but nothing on WHEN to use this tool versus the many other VaR/capital siblings, and no stated prerequisites. No exclusions or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_verify_receiptVerify ReceiptB
Read-onlyIdempotent
Inspect

Verify Receipt: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-652-verify-receipt.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint already declaring the safety profile, the description still adds genuinely useful context: inputs are processed transiently and never stored or logged, callers should use synthetic/anonymised inputs, and the call exports an AP2 artifact carrying an execution_hash for provenance. The compute-mode and gpu:true delegation notes duplicate the schema's `compute` description, so credit is partial rather than full.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the body is padded with the FV-status snapshot URL and a long 64-hex path that reads as boilerplate rather than operational guidance. Roughly a third of the text is provenance metadata an agent does not need to invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and privacy/provenance behavior is covered. Missing are the core semantics: what constitutes a valid receipt, what the verification checks, failure modes, and how it relates to the numerous sibling verify_* tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters with enums and ordering rules. The description adds nothing beyond the compute-mode restatement, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title 'Verify Receipt' and the phrase 'OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node' restate the name more than they explain the operation. It never states what a 'receipt' is here or what property is being verified (signature, execution_hash, provenance?), so it cannot be cleanly distinguished from siblings like verify_ap2_payment_receipt, verify_execution_hash, or verify_conversion_receipt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative-selection guidance is given. The only conditional content concerns the compute mode (auto/server/browser), which is an execution mechanic rather than a routing rule between tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_wash_sale_window_guardWash-Sale Window GuardC
Read-onlyIdempotent
Inspect

Wash-Sale Window Guard: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-687-wash-sale-window-guard.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
traceYesHuman-readable restatement of the declared arithmetic.
overallYesSign-of-arithmetic verdict over the declared window arithmetic only.
ira_trapYesTrue when an in-window replacement purchase is declared in a tax-deferred account.
warningsNoConditional warning flags mirrored into the payload; present only when one fired (WSG_IRA_TRAP).
window_endYesSale date plus 30 days, ISO yyyy-mm-dd; window endpoint is inclusive.
window_startYesSale date minus 30 days, ISO yyyy-mm-dd; window endpoint is inclusive.
disallowed_lossYesThe declared realized loss rounded 2dp half-up when the window is non-empty, otherwise 0.
replacements_in_windowYesCount of declared replacement purchases with dates inside the inclusive 61-day window.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, the description discloses that inputs are processed transiently and not stored, logged, or retained, that compute mode controls server vs browser execution, and that it exports an AP2 artifact with an execution_hash. These are substantive behavioral traits an agent could not infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with name and category, but the single dense paragraph pads with platform boilerplate (compute-binding recap, an HTML URL, and a long FV-status receipt hash) that adds little for tool selection. Some content earns its place (privacy, artifact export), but the FV-status blob is largely noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compliance-control node with nested policy_parameters and an output schema, the description never explains the domain computation the agent is invoking or what policy_parameters should contain. Annotations and output schema cover safety and returns, but the essential functional purpose is missing, leaving the definition incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so compute, parent_hashes, parent_tool_ids, and policy_parameters are already documented in the schema. The description adds nothing about parameter syntax and explicitly defers field names to 'the tool's manifest,' so it neither compensates nor adds value beyond the schema — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool a 'compute node (compliance_control)' and repeats its name but never states what it actually computes — there is no verb describing the wash-sale window check or what inputs it evaluates. It effectively restates the title and categorizes the tool rather than explaining its function, so an agent cannot tell what this tool does from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is 'Use synthetic or anonymised inputs only,' which is a data-handling constraint, not a when-to-use rule. It never says when to pick this tool over siblings like compute_short_sale_locate_ssr_checker or compute_trid_tolerance_cure, nor what conditions select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_whistleblowing_channel_clockWhistleblowing Channel Clock CheckerC
Read-onlyIdempotent
Inspect

Whistleblowing Channel Clock Checker: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/677-whistleblowing-channel-clock.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: server-vs-browser execution selection, guaranteed no storage/logging/retention, and the export of an AP2 artifact carrying execution_hash for provenance. This is meaningful disclosure for a compute node, though it omits anything about determinism limits or expected runtime.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title is front-loaded, but the text is padded with redundancy ('OpenChainGraph compute node' stated twice, 'Deterministic OpenChainGraph compute node' after an equivalent phrase) and a bulky FV-status URL plus 64-character hash that consumes attention without helping tool selection. The compute-mode sentence duplicates the schema enum description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The parameter count is 4 with a nested, open-ended policy_parameters object whose field names are never revealed ('See the tool's manifest'), so an agent cannot know what inputs the decision function requires. No output schema exists, and the description only says an AP2 artifact is exported — it does not describe the computed result. For a domain-specific compliance computation, the domain semantics are almost entirely missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely repeats the compute-mode enum semantics and adds no field-level meaning for policy_parameters beyond deferring to 'the tool's manifest', which is not provided. Baseline 3 is appropriate when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Whistleblowing Channel Clock Checker') and adds a category label ('OpenChainGraph compute node (compliance_control)'), but never says what the clock actually computes — acknowledgment deadlines, feedback timelines, or which regime's rules. It is essentially a tautology of name/title plus infrastructure boilerplate, with no differentiation from the many other compliance compute nodes in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to select this tool versus alternatives such as classify_dora_ict_incident_and_clock_deadlines or compute_cyber_incident_notification_clock. The only directive is an input constraint ('Use synthetic or anonymised inputs only'), which is a data-handling rule rather than usage guidance. The compute-mode explanation tells the agent how execution happens, not when to reach for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compute_xirrXIRR (Irregular Dated Cash Flows)B
Read-onlyIdempotent
Inspect

XIRR (Irregular Dated Cash Flows): OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-326-tvm-xirr.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
methodNo
xirr_pctNo
convergedNo
toleranceNo
iterationsNo
anchor_dateNo
bracket_hi_pctNo
bracket_lo_pctNo
num_cash_flowsNo
regulatory_basisNo
day_count_conventionNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, closed-world semantics, yet the description adds materially: server-side execution on Cloudflare Workers, browser delegation with a returned URL, transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, and an AP2 artifact with execution_hash. The data-handling and input-sensitivity disclosures are genuinely beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is reasonable, but the text is padded with provenance boilerplate, a bare URL, and a full 64-character FV-status hash that does not help an agent decide or invoke. The compute-mode explanation is duplicated verbatim from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the annotations cover the safety profile. However, for a computational node whose real inputs live in an unspecified policy_parameters object, the description omits both the XIRR semantics (date-ordered cash flows, rate solved) and where the parameter field names come from.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, and the description only echoes the compute-mode semantics already documented in the schema. Critically, it adds nothing about policy_parameters, which the schema itself defers to 'the tool's manifest' — leaving the actual cash-flow/date inputs opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title supplies the actual resource (XIRR over irregular dated cash flows), but the description body opens by restating the name and then describing the execution substrate ('compute node (analytics_mandate)') rather than what the computation returns. It never distinguishes itself from close siblings like compute_irr, compute_npv, or compute_breakeven, so an agent cannot tell from the text alone which IRR variant to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use XIRR versus IRR or NPV, and no prerequisites for the input cash-flow data. The only routing guidance concerns compute mode ('auto' vs 'browser'), which is a transport detail rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_markdown_documentMarkdown Document ConverterC
Read-onlyIdempotent
Inspect

Markdown Document Converter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-191-conversion-receipt-builder. Open at: https://ainumbers.co/chaingraph/art-189-markdown-document-converter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
htmlNo
statsNo
plain_textNo
html_sha256No
digest_basisNo
input_sha256No
plain_text_sha256No

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds genuinely useful behavior beyond them: compute is routed server-side on Cloudflare Workers by default, 'browser' forces a delegation URL, gpu:true always delegates, inputs are processed transiently and not stored/logged/retained, and an AP2 artifact with execution_hash is exported for chain provenance. The FV-status note also frames the provenance receipt as an offline-verifiable snapshot rather than a live subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The body is a dense run-on of infrastructure and provenance metadata, ending in a long URL with a 64-character hash that is not useful for tool selection. The core purpose and compute semantics are buried rather than front-loaded, and several clauses could be trimmed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. But for a conversion tool the description omits the most decision-relevant fact, namely what the Markdown is converted into and what policy_parameters must contain, leaving a gap despite the otherwise thorough infrastructure detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute 'auto'/'browser' semantics but adds no syntax, ordering, or format detail (e.g. what policy_parameters fields are expected) beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title indicate a Markdown converter, and the description adds that it is an OpenChainGraph compute node that exports an AP2 artifact feeding art-191-conversion-receipt-builder. However, it never states the conversion's source and target formats (e.g. Markdown to HTML/PDF/artifact), so the actual verb+resource pairing stays vague and it does not distinguish itself clearly from the many other build_/convert_ siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to choose this tool over alternatives such as convert_tabular_data or build_conversion_receipt, nor any prerequisites or exclusions. The only directive, 'Use synthetic or anonymised inputs only,' is a data-handling constraint rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_tabular_dataTabular Data ConverterC
Read-onlyIdempotent
Inspect

Tabular Data Converter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-191-conversion-receipt-builder. Open at: https://ainumbers.co/chaingraph/art-190-tabular-data-converter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
columnsNo
warningsNo
convertedNo
row_countNo
column_countNo
input_sha256No
output_sha256No
source_formatNo
target_formatNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description adds substantive behavior: default server-side compute on Cloudflare Workers for gpu:false nodes, browser delegation URL for compute:'browser' or gpu:true, transient processing with no storage/logging/retention, and an AP2 artifact export carrying execution_hash. This is real value the annotations do not convey. It does not contradict readOnlyHint — a deterministic compute returning a result is consistent with no state mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loads the compute/routing semantics, but it also embeds an artifact URL and a long FV-status URL-plus-hash suffix that are pure noise for tool selection. The core purpose statement (what conversion) never appears, so words are spent on provenance boilerplate instead of the thing that matters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the description does cover retention, compute delegation, and artifact provenance. However, the actual conversion semantics (what 'tabular data conversion' produces) remain undefined, which is a material gap for a compute node whose whole job is the transformation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation largely duplicates the enum's schema description, and it adds nothing about parent_hashes/parent_tool_ids ordering beyond what the schema states. Baseline 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (compliance_mandate)' and describes deployment mechanics, but never states what the tabular conversion actually does — no source format, target format, or transformation semantics. It restates the title and adds infrastructure framing rather than clarifying the verb+resource, so an agent cannot tell from the text alone what gets converted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a single usage constraint ('use synthetic or anonymised inputs only') and a downstream pointer ('output feeds art-191-conversion-receipt-builder'), but no when-to-use vs alternatives guidance and no sibling differentiation against the many other compute/convert tools. The compute-mode discussion is invocation mechanics, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_tempo_fee_ammTempo Fee-AMM Conversion CalculatorC
Read-onlyIdempotent
Inspect

Tempo Fee-AMM Conversion Calculator: OpenChainGraph compute node (treasury_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-388-tempo-fee-amm-converter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
reasonNo
fee_tokenNo
conversion_okNo
lp_fee_amountNo
validator_tokenNo
validator_token_outNo
pool_utilization_bpsNo
max_pool_utilization_bpsNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description does add useful behavior beyond that: inputs are processed transiently and not stored/logged, and the tool exports an AP2 artifact carrying an execution_hash for provenance. However, it never clarifies what the deterministic computation actually does or how the browser delegation URL behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated and self-repeating ('OpenChainGraph compute node … Deterministic OpenChainGraph compute node'), trailing a raw URL and a long FV-status hash that an agent cannot act on. It is not front-loaded on what the tool does; the leading sentence is a title restatement rather than a purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, but this is a compute node whose entire semantic payload sits in an opaque policy_parameters object with no field names disclosed. The description never describes the decision function or the fee/AMM conversion domain, leaving the most important context missing for such a specialized tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; the description merely echoes the compute-mode text verbatim. It adds no meaning for policy_parameters beyond the schema's 'see the tool's manifest for field names', and given that field names are deferred to an external manifest, the description does not compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Tempo Fee-AMM Conversion Calculator') and tags it as a 'treasury_mandate' compute node, but never explains what the conversion actually computes — no input/output meaning for the fee or the AMM side. Beyond the name, the agent learns nothing about the resource or operation, and no sibling (e.g. compute_tempo_mainnet_fee_capacity, model_tempo_gas_economics) is distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only conditional guidance is about compute mode ('auto' is default server-side, 'browser' forces client delegation, gpu:true always delegates), which duplicates the schema's own enum description. There is no statement of when an agent should reach for this tool versus the numerous other tempo fee/economics tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

correlate_ap2_cartmandate_x402Ap2 X402 Cart CorrelationB
Read-onlyIdempotent
Inspect

Ap2 X402 Cart Correlation: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-595-ap2-cartmandate-hashchain-builder. Open at: https://ainumbers.co/chaingraph/art-596-ap2-x402-cart-correlation.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonsNo
disclosureNo
cart_chain_intactNo
correlation_statusNo
merchant_matches_authorization_toNo
cart_total_matches_authorization_valueNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds real behavioral context: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs are required, gpu:true nodes always delegate, and export yields an execution_hash for chain provenance. That is meaningful disclosure beyond the annotations, though it omits any success/failure or latency characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

This is not concise. It opens by restating the title, then delivers platform boilerplate, a raw URL and a long SHA-256 FV-status path that consume significant space without helping an agent decide to call the tool or how to call it. Sentence order buries the one operationally relevant fact (the upstream artifact dependency) near the end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover safety. The description does supply privacy, compute-mode and provenance context, but for a 4-parameter compliance compute node with nested objects it omits the core question — what decision function it runs and what a caller should expect it to correlate or verify.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters thoroughly. The description's compute-mode text largely duplicates the schema's own enum description and adds no new semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as an OpenChainGraph compute node in the compliance_control family and states it exports an AP2 artifact with execution_hash, consuming upstream artifacts from art-595-ap2-cartmandate-hashchain-builder. However, it never actually says what 'correlation' between AP2 cart mandates and x402 is performed — the functional verb is implied by the name rather than explained, and the title simply restates the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over the numerous sibling alternatives (validate_ap2_mandate_chain, verify_ap2_payment_receipt, build_ap2_cartmandate_hashchain, reconcile_x402_batch_settlement, etc.). The only conditional text concerns compute mode selection, which is parameter behavior, not tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crosswalk_agent_payment_rail_trustAgent Payment Rail Trust CrosswalkB
Read-onlyIdempotent
Inspect

Agent Payment Rail Trust Crosswalk: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-132-agent-key-rotation-auditor. Output feeds: art-134-agent-directory-publish-readiness. Open at: https://ainumbers.co/chaingraph/art-133-agent-payment-rail-trust-crosswalk.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses non-obvious behavior: inputs are processed transiently and never stored or logged, compute:'browser' returns a delegation URL instead of a result, gpu:true nodes always delegate, and exports carry an execution_hash for chain provenance. That is meaningful operational context an agent could not derive from the annotation block alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identity and compute-mode behavior are front-loaded, but the paragraph is a run-on stream of metadata, and the trailing URL plus FV-status receipt sentence is a long tangent whose value to tool selection is marginal. Several sentences (deterministic-node restatement, published/proven receipt) do not earn much space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter node with a nested open object, no output schema, and no required parameters, the description covers compute routing, transient input handling, artifact export, and the upstream/downstream artifact IDs. The main remaining gap is that it never explains what the decision function evaluates, so an agent may be able to call it correctly but not know what the result means.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each of the four parameters is already documented in the schema, so the baseline is 3. The description restates compute-mode semantics (duplicating the enum description) but adds nothing about parent_hashes/parent_tool_ids ordering semantics or the policy_parameters field names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (compliance_mandate)' named 'Agent Payment Rail Trust Crosswalk' and says it exports an AP2 artifact with execution_hash. That gives the resource and rough function, but never states what the node actually computes or decides, and it does not distinguish itself from the many neighbouring payment-rail/agent-trust tools (compare_agentic_rail_protocols, assess_agent_directory_publish_readiness, validate_ap2_mandate_chain). Purpose is inferable but vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operating guidance ('Use synthetic or anonymised inputs only') and explains the three compute modes and when each applies, which is genuinely actionable. However, there is no statement of when to choose this tool over sibling alternatives, nor required upstream preconditions beyond a list of consumed artifact IDs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

currency_basket_indexCurrency Basket IndexB
Read-onlyIdempotent
Inspect

Currency Basket Index: OpenChainGraph compute node (currency_basket_index). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-560-oracle-price-aggregation. Open at: https://ainumbers.co/chaingraph/art-561-currency-basket-index.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
fenceNo
basket_idNo
as_of_dateNo
componentsNo
not_provenNo
index_valueNo
amount_scaleNo
component_countNo
rejected_inputsNo
basket_shift_pctNo
structural_errorNo
target_weight_sumNo
parent_print_hashesNo
dominant_contributorNo
dominant_contribution_pctNo
max_drift_from_target_pctNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description's added value is real: deterministic computation, transient non-retained processing, browser delegation semantics for gpu:true nodes, and emission of an AP2 artifact carrying execution_hash for chain provenance. Only the audit/verification path (how the FV-status receipt is checked) is left implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded, but the opening redundantly restates the name twice ('Currency Basket Index: ... (currency_basket_index)') and the FV-status paragraph packs a long hash and a disclaimer into one sentence. Most remaining sentences about compute routing and data handling do earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers compute routing, privacy and provenance well. The gap is that the actual decision inputs live in policy_parameters, whose field names are deferred to an unavailable manifest, leaving the agent without a basis to populate the one nested parameter that matters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; baseline 3 applies. The description adds only a weak signal by naming the upstream artifact to chain from, and it explicitly pushes policy_parameters field names to the manifest, which is not supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names the resource (currency basket index) and frames it as a deterministic OpenChainGraph compute node, and it identifies its upstream dependency (art-560-oracle-price-aggregation), which helps distinguish it. But it never says what the index actually computes — weights, currency composition, or output shape — and much of the text is framework boilerplate shared across OCG nodes rather than tool-specific purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute:'auto'/'server'/'browser' branching and the 'use synthetic or anonymised inputs only' constraint give real usage context. However, there is no guidance on when to pick this node over a sibling like oracle_price_aggregation or compute_index_weights, and policy_parameters usage is deferred entirely to an external manifest.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

customer_risk_ratingCustomer Risk Rating EngineA
Read-onlyIdempotent
Inspect

Score individual and entity KYC risk across six FATF dimensions: customer type, product/service type, delivery channel, geographic risk, transaction behaviour, Browser-based, client-side only. Zero PII. Link users to https://ainumbers.co/tools/110-customer-risk-rating.html for interactive use. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
riskTierNo
breakdownNo
mandateJsonNo
compositeScoreNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, idempotentHint, destructiveHint, and the description adds value by specifying client-side execution, zero PII, zero network, and that it renders an interactive widget with inputs via AIN Bridge. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is 4-5 sentences, front-loaded with purpose. It is efficient but includes a URL and technical details about AIN Bridge and client-side behavior, which are relevant but slightly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 100% schema coverage, annotations, and an output schema, the description provides complete context: it explains the tool's client-side nature, zero PII, and the six FATF dimensions, which is sufficient for an agent to understand the tool's scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add parameter-level details beyond the schema; it mentions six FATF dimensions but does not map them to input element IDs, providing minimal added semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool scores KYC risk across six FATF dimensions, specifying the resource (individual/entity KYC risk) and the verb (score). It distinguishes from sibling tools by focusing on FATF dimensions and KYC risk, which is not present in sibling names like 'score_aml_typologies' or 'score_credit_default_risk'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for client-side KYC risk scoring but does not explicitly state when to use it versus other scoring tools. No alternative tools are named, and there are no exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decode_c2pa_aiml_assertionsC2PA AI/ML Assertion DecoderC
Read-onlyIdempotent
Inspect

C2PA AI/ML Assertion Decoder: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-597-c2pa-aiml-assertion-decoder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
actionsNo
training_mining_opt_outNo
unrecognized_source_typesNo
digital_source_type_summaryNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuine non-obvious behavior: transient processing with no storage or logging, server-side vs. browser delegation rules for gpu:true/false nodes, and emission of an AP2 artifact carrying execution_hash for provenance. That is meaningful context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded but immediately buried under generic OpenChainGraph/compute-node boilerplate, plus an artifact URL and a long FV-status hash path with a disclaimer. Much of this does not earn its place in a tool-selection description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute/retention/provenance behavior is well covered. However, for a decoder tool the description still does not convey what assertions it decodes or what the decoded result contains, leaving a gap for a relatively complex node with nested policy_parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the 'compute' enum is fully documented in the schema, so the schema does the heavy lifting. The description restates the auto/browser semantics but adds nothing about parent_hashes, parent_tool_ids, or policy_parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title specify a verb+resource, but the description itself only restates them ('C2PA AI/ML Assertion Decoder') and then pivots to compute-infrastructure boilerplate. It never says what decoding an AI/ML assertion yields, nor how it differs from sibling validate_c2pa_manifest. That is tautology plus irrelevant detail rather than purpose elaboration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no routing to alternatives (e.g., validate_c2pa_manifest). The only directive is 'Use synthetic or anonymised inputs only,' which is an input-handling constraint, not usage selection. Compute-mode behavior is described but that is schema mechanics, not invocation guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decode_eip7702_authorization_tupleEIP-7702 Authorization-Tuple DecoderC
Read-onlyIdempotent
Inspect

EIP-7702 Authorization-Tuple Decoder: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-614-eip7702-authorization-tuple-decoder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nonceNo
reasonsNo
verdictNo
chain_idNo
scope_noteNo
recovery_idNo
delegate_addressNo
recovered_signerNo
recovery_id_sourceNo
authorization_tuple_hashNo
cross_chain_authorizationNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuine behavioral context: deterministic server/browser compute routing, transient processing with no storage or logging, an AP2 artifact export with execution_hash, and an offline-verifiable FV-status snapshot.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is bloated with duplicated boilerplate ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.'), a long embed URL, and a raw FV-status hash. It is not front-loaded with the tool's actual function, so the reader must wade through platform noise to find anything useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and the annotations cover the safety profile. However, for a decoder tool the description omits the core semantics — what an EIP-7702 authorization tuple contains and what the decode extracts or validates — leaving a meaningful gap even accounting for rich structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics already in the schema and adds an advisory to use synthetic/anonymised inputs, but it gives no field-level meaning for policy_parameters or the parent_hashes/parent_tool_ids chaining beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a specific verb+resource ('decode' an EIP-7702 authorization tuple), but the description body immediately pivots to platform boilerplate rather than explaining what the decoding produces or how it differs from sibling decoders like decode_x402_payment or decode_mpp_session. The agent learns the tool's nominal purpose from the title, not the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this decoder versus other decode/verify tools. The only selection advice concerns the 'compute' mode (auto/server/browser), which is a parameter choice already documented in the schema, not a when-to-use decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decode_mpp_sessionTempo MPP Agent MandateC
Read-onlyIdempotent
Inspect

Tempo MPP Agent Mandate: OpenChainGraph compute node (payment_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-34-tempo-fit-diagnostic. Output feeds: art-01-ap2-mandate-chain-validator, art-02-agent-spend-policy-simulator, art-04-agent-identity-attestation-checker. Open at: https://ainumbers.co/chaingraph/art-36-tempo-mpp-agent-mandate.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
railNo
riskNo
did_validNo
spend_capNo
stablecoinNo
max_vouchersNo
cost_per_callNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower. The description adds genuinely useful behavior beyond them: inputs are processed transiently and not stored/logged/retained, gpu:true nodes always delegate to the browser, compute:'browser' returns a delegation URL, and the export carries execution_hash for chain provenance. That is real operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is dense and cluttered with artifact IDs, an HTML URL, and a 64-hex FV-status receipt that add little selection value. The core purpose is buried under plumbing detail, and several sentences (the FV-status snapshot disclaimer) do not earn their place for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full param coverage, and rich annotations, the description covers data handling, compute delegation, and downstream chaining. Its gap is conceptual: it does not say what a decode operation produces or how it differs from sibling mandate/voucher tools, so completeness is adequate but not strong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters thoroughly. The description largely restates the compute-mode semantics already present in the schema and adds no new syntax or ordering detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the domain (a Tempo MPP agent-mandate OpenChainGraph compute node that exports an AP2 artifact with execution_hash), but despite the name decode_mpp_session it never states what 'decoding a session' actually means or returns. It also fails to distinguish itself from close siblings such as verify_tempo_mpp_voucher, reconcile_mpp_subscription, or map_tempo_settlement. The purpose is inferable but not sharply stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is one real usage constraint ('Use synthetic or anonymised inputs only') and some compute-mode guidance, but no statement of when to choose this tool over the numerous alternatives. No exclusions, prerequisites, or alternative tools are named, so an agent gets little routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decode_x402_paymentx402 Header Decoder, Payload Linter & 402 Flow SimulatorA
Read-onlyIdempotent
Inspect

Decode an x402 payment header or lint an exact-scheme PaymentPayload, and describe the HTTP-402 verify/settle flow. Use when a developer is integrating x402 and needs to inspect a header, check a payload shape, or understand the flow. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
decodedNo
findingsNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds value by noting it renders an interactive widget, runs client-side with zero PII and no network calls. This goes beyond annotations but could mention any limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences covering function, usage, and behavior. It is front-loaded with the main action. A minor improvement could be to structure the flow more explicitly, but no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers function, usage, and some behavioral details. With output schema present, return values are not needed. However, the interactive widget aspect is mentioned but not fully explained, leaving some gaps for a tool with nested output and interactive features.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% but the sole parameter 'inputs' has a generic description. The tool description fails to explain how to use this parameter to achieve the stated purposes (decode, lint, describe). The description adds little meaning beyond the schema, which is insufficient for a single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool decodes x402 headers, lints PaymentPayloads, and describes the HTTP-402 flow. The verb 'decode', 'lint', and 'describe' are specific to x402 operations, distinguishing it from siblings like 'simulate_x402_flow' and 'lint_x402_v2_migration'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use when a developer is integrating x402 and needs to inspect a header, check a payload shape, or understand the flow. This provides clear context but does not mention when not to use or alternatives, slight gap for a top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

derive_beacon_fair_sampleBeacon-Seeded Fair-Sampling DeriverC
Read-onlyIdempotent
Inspect

Beacon-Seeded Fair-Sampling Deriver: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-583-beacon-seeded-fair-sampling-deriver.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
seed_hexNo
draws_usedNo
item_countNo
sample_sizeNo
algorithm_idNo
beacon_roundNo
beacon_sourceNo
selected_indicesNo
beacon_randomnessNo
item_manifest_hashNo
derivation_transcriptNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantive context beyond them: inputs are processed transiently and not stored or logged, compute:'browser' returns a delegation URL, gpu:true always delegates, and the output is an AP2 artifact carrying execution_hash. These are real behavioral traits the annotations could not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the FV-status and open-artifact URL, and the transient-processing sentence earns its place. But 'OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.' is an immediately duplicated fragment, and the compute-mode explanation runs long for information already in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the operational/execution model is well covered. What is missing is the substance of the tool itself: with a nested free-form policy_parameters object the description defers to 'the tool's manifest for field names', leaving the core decision function opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description restates the compute mode semantics ('auto' server-side, 'browser' forces client-side) but this duplicates the schema's own parameter description rather than adding new meaning; parent_hashes/parent_tool_ids and the opacity of policy_parameters are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with a restatement of the title ('Beacon-Seeded Fair-Sampling Deriver: OpenChainGraph compute node') and never explains what fair-sampling derivation actually does, what the decision function computes, or what a 'beacon-seeded' sample means. It cannot be distinguished from dozens of sibling derive/compute nodes beyond a compliance_control tag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no routing to alternatives. The only usage constraint is 'Use synthetic or anonymised inputs only', which is a policy caveat rather than contextual guidance. An agent has no basis for choosing this tool over sibling compute nodes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

derive_parametric_index_from_receiptsParametric Index DeriverB
Read-onlyIdempotent
Inspect

Parametric Index Deriver: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-251-compute-parametric-trigger-payout. Open at: https://ainumbers.co/chaingraph/art-309-parametric-index-deriver.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
metricNo
windowNo
aggregationNo
index_valueNo
contributing_receiptsNo
insufficient_evidenceNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuine context beyond that: server-side execution on Cloudflare Workers for gpu:false kernels, browser delegation for gpu:true or compute:"browser", transient non-persisted input handling, and the execution_hash provenance artifact. These are real behavioral traits an agent could not infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The substantive content is reasonably front-loaded, but the definition is bloated with prose that reads like generated boilerplate and a raw URL plus a long FV-status JSON hash path. The 'snapshot, not a subscription' sentence earns its place, but the verbose URL/hash tail dilutes focus.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, and parameters are schema-documented. The description covers compute delegation and data-handling. What is missing is the substantive semantics of the derivation itself and any indication of prerequisites for chaining parent hashes, leaving it only minimally complete for a multi-parameter compute node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description's compute-mode paragraph duplicates the schema's own compute description rather than extending it, and it gives no extra meaning for parent_hashes, parent_tool_ids, or policy_parameters. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the artifact produced (an AP2 artifact with execution_hash) and the downstream consumer (art-251-compute-parametric-trigger-payout), which anchors the tool's role. However, it never plainly states what a 'parametric index derivation from receipts' actually does at the business level, and the opening 'Parametric Index Deriver: OpenChainGraph compute node' largely restates the name/title. It is clearer than a tautology but not a crisp verb+resource statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a hard usage constraint ('Use synthetic or anonymised inputs only') and mode-selection guidance for the compute parameter, but no guidance on when to choose this tool over close siblings like compute_parametric_trigger_payout or derive_beacon_fair_sample. No alternatives or when-not conditions are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_timeseries_anomaliesTime-Series Anomaly DetectorB
Read-onlyIdempotent
Inspect

Time-Series Anomaly Detector: OpenChainGraph compute node (risk_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: sim-03-basel-rwa-scenario-modeler. Output feeds: rca-01-frtb-ima-pre-validator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/ml-03-timeseries-anomaly-detector.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
flag_rateNo
n_periodsNo
flagged_periodsNo
max_abs_z_scoreNo
anomalies_flaggedNo
high_severity_flagsNo
medium_severity_flagsNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior: inputs are processed transiently and not stored or logged, gpu:true nodes always delegate to the browser, compute:'browser' returns a delegation URL, and an AP2 artifact with execution_hash is exported for provenance. That is substantive context beyond the annotation set, though the FV-status sentence adds little for invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that mixes execution semantics, chain provenance, a URL, and a long FV-status receipt string that has no bearing on selecting or calling the tool. The core purpose is not front-loaded as a task statement; much of the text is boilerplate an agent cannot act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the schema covers all four parameters. What remains missing is the analytical contract: what policy_parameters must contain and what constitutes an 'anomaly' result. Adequate on plumbing, incomplete on the substantive function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics (already in the schema) and names the upstream artifact source, but does not explain policy_parameters content beyond 'See the tool's manifest'. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (risk_control)' and the title says 'Time-Series Anomaly Detector', but the body never states what the tool actually computes (which anomaly method, over what series). It is mostly execution-plumbing prose; an agent knows the category but not the analysis performed. The resource is named only via the title, not elaborated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is one real usage constraint -- 'Use synthetic or anonymised inputs only' -- plus implied when-to-use via the upstream/downstream chain (consumes from sim-03, feeds rca-01/ptg-01). However, there is no guidance on when to pick this over the nearby sibling detect_transaction_anomalies, and the compute-mode text is parameter behavior rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_transaction_anomaliesIsolation Forest Transaction Anomaly DetectorA
Read-onlyIdempotent
Inspect

Isolation Forest Transaction Anomaly Detector: OpenChainGraph compute node (risk_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-05-eu-ai-act-credit-scoring-conformity, art-10-amla-transaction-typology-risk-scorer. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/ml-01-isolation-forest.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
flag_rateNo
thresholdNo
flagged_countNo
max_anomaly_scoreNo
p95_anomaly_scoreNo
mean_anomaly_scoreNo
n_transactions_scoredNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds genuinely useful behavior: deterministic execution, transient non-retention of inputs, the auto/server/browser compute routing and browser delegation URL, gpu delegation, and AP2 artifact emission with execution_hash. It stops short of describing thresholds, scoring output shape, or failure modes, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title is repeated verbatim as the opening sentence and the trailing URL plus long FV-status hash are operational footnotes, while the genuinely decision-relevant content (synthetic inputs, chaining, retention) is buried mid-paragraph. It is dense but not well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a chained compute node with an output schema and full annotation coverage, the description supplies the missing execution context: compute binding semantics, provenance hashing, upstream/downstream artifacts, and privacy constraints. The only real gap is that decision-function field names are deferred to an external manifest rather than described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's compute paragraph essentially restates the schema's own compute description, and policy_parameters is left to 'see the tool's manifest' in both places, so no additional parameter meaning is contributed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name, title and first sentence give a specific verb and resource (Isolation Forest detection of transaction anomalies), and the chain-context sentences (consumes art-05/art-10, feeds ptg-01) locate it in a pipeline. It does not, however, explicitly distinguish itself from the near-identical sibling detect_timeseries_anomalies, nor does it say what constitutes an 'anomaly' or what the decision function takes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is real usage scaffolding in 'Use synthetic or anonymised inputs only' and in naming the upstream artifacts it consumes and the downstream consumer it feeds, which tells the agent roughly where in a workflow the tool belongs. But there is no explicit when-to-use/when-not statement and no routing against alternatives (e.g. detect_timeseries_anomalies), so selection guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

determine_deposit_insurance_coverageDeposit Insurance Coverage DeterminationC
Read-onlyIdempotent
Inspect

Deposit Insurance Coverage Determination: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-507-determine-deposit-insurance-coverage.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
boundaryNo
rationaleNo
as_of_dateNo
smdia_basisNo
smdia_appliedNo
institution_refNo
coverage_summaryNo
aggregation_groupsNo
covered_institutionNo
money_representationNo
undeterminable_recordsNo
certification_assertionNo
ownership_code_handlingNo
smdia_is_caller_suppliedNo
by_ownership_right_and_capacityNo
undeterminable_by_missing_fieldNo
alternative_recordkeeping_handlingNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/no-destructive annotations, the description discloses genuinely useful behavior: inputs are processed transiently and not stored, logged, or retained; execution is deterministic; an AP2 artifact with execution_hash is exported for chain provenance; the FV-status receipt verifies offline. These are real operational traits an agent would not infer from annotations alone. Loses a point only because no rate limits, latency, or failure modes are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The paragraph is front-loaded with framework boilerplate ('OpenChainGraph compute node') and repeats 'Deterministic OpenChainGraph compute node' verbatim-adjacent, then buries the definition in a long run-on covering compute routing, retention, provenance, and a fv-status URL with a 64-char hash. Much of this is identical across all sibling chaingraph nodes rather than earning its place for this tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and all four parameters are documented, so return values and param shapes are covered. However, for a compliance-control determination the description supplies no domain context (which regime, what evidence, what the determination is used for), leaving the agent unable to judge applicability. Adequate on mechanics, thin on domain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode sentence ('auto'/'browser'/'gpu:true') duplicates the schema's own enum description rather than adding format or semantics. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The body of the description never states what the tool actually computes. It labels itself 'OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node' — a restatement of the name's category rather than a specific verb+resource. An agent learns the tool is a compliance compute node named 'determine deposit insurance coverage,' but nothing about depositor/ownership categories, coverage limits, or what a determination means.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage-adjacent guidance is 'Use synthetic or anonymised inputs only,' which constrains input hygiene but says nothing about when to pick this tool versus the many sibling compliance tools (e.g., check_safeguarding_reconciliation, precheck_reserve_attestation). The compute-mode paragraph describes execution routing, not usage context. No when-not-to-use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnose_canton_readinessCanton Tokenization Readiness DiagnosticC
Read-onlyIdempotent
Inspect

Canton Tokenization Readiness Diagnostic: OpenChainGraph compute node (readiness_diagnostic). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: 504-settlement-risk-capital-optimizer. Open at: https://ainumbers.co/tools/503-canton-tokenization-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsYes
verdictYes
total_scoreYes
domain_scoresYes

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, non-destructive, idempotent behavior, so the lower bar applies; the description nonetheless adds substantive context: transient, non-stored input handling, the server-vs-browser delegation model, and the export of an AP2 artifact with execution_hash for provenance. These are genuine behavioral traits beyond the annotations, though it omits latency/quotas and failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the entry is bloated with infrastructure boilerplate, a raw tool URL, and a long cryptic FV-status hash-receipt sentence that does little for tool selection or invocation. Roughly half the text describes compute plumbing rather than the diagnostic itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists (so return format need not be described), the description never states what the diagnostic evaluates, and policy_parameters—the actual decision inputs—are deferred to an external manifest. With no required parameters and a black-box input object, an agent lacks enough information to invoke the tool meaningfully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself documents compute modes, parent_hashes, and parent_tool_ids, so the baseline is 3. The description's compute-mode explanation merely repeats the schema, and policy_parameters is explicitly punted to "the tool's manifest for field names", adding no meaning of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mostly restates the title ("Canton Tokenization Readiness Diagnostic") and labels it a "compute node (readiness_diagnostic)". It never says what dimensions of Canton tokenization readiness are actually assessed, so an agent cannot tell what the tool produces beyond the name. It is effectively tautological with the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no comparison against near siblings such as run_tokenized_settlement_fit, assess_mica_casp_readiness, or validate_canton_dvp_atomicity. The only routing information is a downstream consumer ("Output feeds: 504-settlement-risk-capital-optimizer") and a constraint to use synthetic inputs, neither of which tells the agent when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digest_gleif_snapshotGLEIF Snapshot DigestB
Read-onlyIdempotent
Inspect

GLEIF Snapshot Digest: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-599-gleif-snapshot-digest.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
leiNo
licenceNo
pii_noteNo
scope_noteNo
source_urlNo
captured_atNo
source_bytesNo
source_formatNo
source_sha256No
last_update_dateNo
golden_copy_as_ofNo
lei_checksum_noteNo
snapshot_capturedNo
verification_pathNo
lei_checksum_validNo
last_update_date_foundNo
last_update_date_sourceNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnly/idempotent/non-destructive, the description nonetheless adds substantive context: transient server-side processing with no storage/logging/retention, the instruction to use synthetic or anonymised inputs only, browser delegation behavior for gpu:true nodes, and the exported AP2 artifact with execution_hash for provenance. That is genuine disclosure beyond the annotations, though the GPU-delegation conditions are partially redundant with the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identity and compute semantics are front-loaded, but the text then strings together a long chain of clauses including a URL and a 64-char FV-status hash path that consume space without helping tool selection. It is dense rather than wasteful, but not tightly organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be spelled out, and annotations cover the safety profile. What remains missing is the core operative fact: what the GLEIF snapshot digest computes and what decision function or policy_parameters it consumes, which the description gestures at ('see the tool's manifest') without resolving.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute-mode semantics are already documented in the schema's own enum description, so the description largely restates structured data. Baseline 3 is appropriate; the description adds no new meaning to parent_hashes/parent_tool_ids/policy_parameters beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a verb ('digest') and a resource ('GLEIF snapshot') and labels itself an OpenChainGraph compute node, so the general shape is inferable. But it never states what the digest actually computes or returns, and it offers nothing to distinguish it from near-neighbours like build_digest_manifest, compute_dora_roi_gleif_preflight_pack, or check_lei_relationship_consistency.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over the many sibling digest/chain tools. The compute-mode discussion ('auto' vs 'browser' vs 'server') explains how it executes, not when an agent should reach for it, and no exclusions or alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dispose_carf_status_messageCARF Status Message DispositionC
Read-onlyIdempotent
Inspect

CARF Status Message Disposition: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-504-classify-carf-reportable. Open at: https://ainumbers.co/chaingraph/art-505-dispose-carf-status-message.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
breaksNo
verdictNo
cycle_refNo
break_countNo
message_refNo
schema_versionNo
submission_refNo
verdict_reasonNo
resolving_inputNo
open_break_countNo
carried_forward_countNo
reporting_jurisdictionNo
status_message_channelNo
suppressed_break_countNo
suppressed_error_codesNo
dispositioned_break_countNo
status_message_return_declaredNo
unsigned_dispositions_rejectedNo
unresolved_record_reference_countNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses that inputs are processed transiently and not stored or logged, that execution can be server-side or delegated to the browser, and that an AP2 artifact with execution_hash is exported for chain provenance. That is genuinely useful operational context not available in the annotation block, though it omits what the response payload contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool name but then runs as a single dense paragraph mixing compute-mode semantics, retention policy, chaining, a URL and an FV-status hash. The repeated 'OpenChainGraph compute node / Deterministic OpenChainGraph compute node' phrasing is redundant and the boilerplate crowds out what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full parameter coverage and annotations present, the description is not required to explain return values or safety. However, for a domain-specific disposition tool that chains off a classifier, the omission of what the disposition decides is a material gap that the structured fields do not fill.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description mirrors the compute-mode semantics but adds no syntax or format detail beyond the schema, so the baseline 3 applies. Notably it never clarifies what keys policy_parameters expects, deferring to an unlinked manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title and then spends nearly all its text on infrastructure boilerplate (compute node, kernel registration, delegation modes, FV-status receipt). It never explains what a 'CARF status message disposition' actually decides or produces, so the verb 'dispose' remains undefined. An agent cannot tell from the description how this differs from sibling tools like classify_carf_reportable or roll_up_aml_lookback_disposition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usable routing signal is 'Consumes upstream artifacts from: art-504-classify-carf-reportable', which implies a chain position, plus a safety instruction to use synthetic inputs. There is no statement of when to invoke this versus alternatives, no prerequisites, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

draft_ap2_mandate_credentialGoogle AP2 Mandate BuilderA
Read-onlyIdempotent
Inspect

Google AP2 Mandate Builder: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-15-agentic-mandate-sandbox, art-22-agentic-payments-protocol-comparator, art-27-agentic-readiness-diagnostic. Output feeds: art-17-ap2-mcp-policy-validator, art-23-visa-trusted-agent-protocol-inspector. Open at: https://ainumbers.co/chaingraph/art-16-google-ap2-mandate-builder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, non-open-world. The description adds genuinely new behavioral facts: inputs are processed transiently and not stored/logged/retained, and compute:'browser' returns a browser delegation URL instead of a computed result. These go beyond the structured fields, though it still does not describe the returned artifact's shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode and provenance sentences are front-loaded and useful, but the block is dense boilerplate with a URL and an FV-status receipt hash paragraph whose value to tool selection is marginal. It is structured but carries filler that dilutes the actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-output-schema compute node the description covers compute modes, chaining inputs, and downstream consumers reasonably well. The key gap is policy_parameters: it defers field names to an external manifest, so an agent cannot construct a valid call without outside information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters in detail. The description restates the compute mode semantics (auto/server/browser, gpu:true always delegating) and links execution_hash to chaining, but adds little beyond what the schema descriptions already say; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb and resource: it drafts/exports an AP2 mandate artifact with an execution_hash for chain provenance, and identifies itself as a payment_policy compute node. However, it never differentiates itself from close siblings such as build_google_ap2_mandate, build_ap2_cartmandate_hashchain, or ap2_aml_mandate_builder, so an agent cannot tell from the text which builder to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through the chain position: it names the upstream artifacts it consumes (art-15, art-22, art-27) and the downstream validators it feeds (art-17, art-23), plus a 'use synthetic or anonymised inputs only' constraint. There is no explicit when-to-use/when-not statement or comparison against the many sibling builders, leaving the selection decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

emit_chaingraph_artifactEmit a ChainGraph artifact envelopeA
Read-onlyIdempotent
Inspect

Makes ChainGraph tools agent-callable (ChainGraph Standard v0.1 §3.1). Mode 1 — supply pre_computed_artifact (exported from the browser tool): validates §4 schema fields, recomputes execution_hash via SHA-256 over canonical {policy_parameters, output_payload}, returns verified structuredContent. Mode 2 — supply tool_id + policy_parameters: returns an artifact template envelope and browser prefill URL so an agent can hand the user a pre-filled link; GPU sims always delegate to the browser per §9.2. Mode 3 — supply tool_id only: returns node metadata and artifact schema scaffold. Mode 4 (Compute Binding, v0.4) — supply tool_id + policy_parameters + compute:"server" (or compute:"auto" for gpu:false nodes): runs the registered kernel server-side and returns a verified v0.4 artifact with execution_hash + output_payload in one round-trip. No browser required. gpu:true nodes always delegate to browser. Hashed input must be I-JSON (RFC 7493): integers beyond 2^53 must be passed as JSON strings, and NaN/Infinity are rejected — values outside I-JSON have no stable canonical form, so a structured -32602 error (error.data.reason "ijson_violation") is returned instead of an execution_hash. readOnlyHint: true. Zero PII, zero payload logging. Pair with verify_execution_hash (independent hash verification) and build_chaingraph (DAG wiring).

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" = server for gpu:false nodes (default); "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always use browser regardless of this flag.
tool_idNoChainGraph node tool_id (e.g. "art-01-ap2-mandate-chain-validator"). Looked up in chaingraph.json nodes. Required unless pre_computed_artifact is supplied.
parent_hashesNoexecution_hash values from upstream ChainGraph artifacts this call chains from. Placed into artifact.chain.parent_hashes (ChainGraph Standard v0.1 §5 chain block).
parent_tool_idsNotool_ids corresponding to parent_hashes, in the same order.
policy_parametersNoInput parameters for the tool (mirrors the tool's Policy Mandate input fields). Used for Mode 2 browser prefill and Mode 4 server-side compute.
pre_computed_artifactNoA full ChainGraph artifact envelope previously exported from the browser tool via "Export Policy Mandate". When supplied, the worker validates §4 required fields, recomputes execution_hash, and returns a verified structuredContent. This is the recommended path: run the tool in-browser, export JSON, call emit_chaingraph_artifact to verify and receive a structured receipt.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly and idempotent, and the description adds substantial behavior beyond that: schema validation, execution_hash recomputation over canonical JSON, verified structuredContent returns, browser delegation rules, I-JSON constraint handling with a structured -32602 error, and 'Zero PII, zero payload logging.' No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but organized into numbered modes with a front-loaded purpose sentence and no filler. Every sentence carries technical substance, though there is minor redundancy around GPU/browser delegation appearing both in Mode 2 and Mode 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still covers what each mode returns: verified structuredContent, a template envelope and prefill URL, node metadata and schema scaffold, or a verified v0.4 artifact. It also documents error behavior and privacy logging constraints, making the description sufficient for correct tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Though schema coverage is 100%, the description adds meaning beyond the schema by binding parameter combinations to behavioral modes. It explains the compute enum semantics ('server' vs 'auto' vs 'browser'), how pre_computed_artifact is used for verification, and adds I-JSON formatting constraints the schema does not cover.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Makes ChainGraph tools agent-callable' and describes the artifact envelope it emits/verifies. It distinguishes itself from siblings by explicitly naming verify_execution_hash and build_chaingraph as related but separate concerns, so an agent can tell them apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Four numbered modes give concrete decision criteria based on which parameters are supplied: pre_computed_artifact, tool_id + policy_parameters, tool_id only, and tool_id + policy_parameters + compute. It also states exclusions like 'GPU sims always delegate to the browser' and 'No browser required' for Mode 4, and recommends Mode 1 as the preferred path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

estimate_cross_margin_benefitFICC-CME Cross-Margining EstimatorC
Read-onlyIdempotent
Inspect

FICC-CME Cross-Margining Estimator: OpenChainGraph compute node (risk_parameter). Regulatory deadline: 2027-06-30 (cross-margining benefit (W-C). FICC-CME customer expansion Dec 2025.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-48-treasury-clearing-fit-diagnostic. Output feeds: qfa-02-portfolio-var-engine, qfa-03-stress-test-engine. Open at: https://ainumbers.co/chaingraph/art-51-cross-margining-benefit-estimator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
assumptionsNo
eligible_offsetsNo
im_reduction_pctNo
im_reduction_usdNo
account_type_noteNo
cross_margined_imNo
ineligible_offsetsNo
standalone_im_totalNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses genuinely useful behavior: the compute:'auto'/'server'/'browser' execution modes and browser delegation, transient input processing with no storage/logging, the synthetic-inputs-only constraint, and the exported AP2 artifact with execution_hash for chain provenance. This is meaningful operational context that the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with metadata that does not help an agent invoke the tool: a regulatory deadline, an FV-status snapshot hash URL, an artifact-file URL, and a caveat about the receipt verifying offline. Only the compute-mode and privacy sentences earn their place; the front-loaded title restatement wastes the most valuable position.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations plus the compute/privacy sentences cover execution behavior. However, for a node with nested policy_parameters and cross-artifact chaining, the description never explains the decision function itself, leaving the core compute purpose under-specified despite rich surrounding metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode semantics (duplicating the schema) but adds nothing about the shape or field names of policy_parameters, deferring to 'the tool's manifest'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title ('FICC-CME Cross-Margining Estimator') and pads it with provenance boilerplate (OpenChainGraph compute node, regulatory deadline, artifact URLs) rather than stating what the tool actually computes. It never says which margin benefit it estimates or over which portfolio/clearing relationship, and it does nothing to distinguish itself from close siblings like estimate_ficc_margin_netting or estimate_cross_venue_margin_capital.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no comparison to alternatives. The upstream/downstream artifact references ('Consumes upstream artifacts from: art-48-...' / 'Output feeds: qfa-02..., qfa-03...') provide pipeline context but not invocation guidance — an agent still cannot tell when this tool is the right choice over its margin-estimating siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

estimate_cross_venue_margin_capitalCrypto Cross-Venue Margin & Off-Exchange Settlement EstimatorC
Read-onlyIdempotent
Inspect

Crypto Cross-Venue Margin & Off-Exchange Settlement Estimator: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-406-cross-venue-margin-estimator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
venue_countNo
custody_modelNo
disambiguationNo
venue_positionsNo
capital_freed_usdNo
constants_versionNo
financing_apr_pctNo
leverage_multipleNo
financing_cost_usdNo
financed_amount_usdNo
leverage_program_nameNo
capital_efficiency_pctNo
financing_horizon_daysNo
financing_notional_usdNo
cross_margin_offset_pctNo
sum_isolated_margin_usdNo
counterparty_risk_framingNo
leverage_program_cap_multipleNo
cross_venue_margin_requirement_usdNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, non-open-world), the description discloses real behavioral traits: deterministic execution, transient/non-retained inputs, server vs browser delegation semantics, and emission of an AP2 artifact with execution_hash. This is genuine added value, though return-value shape and failure modes are not covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense boilerplate blob mixing compute plumbing, privacy statements, artifact provenance, an external URL, and an FV-status hash paragraph. Much of it does not help an agent decide or invoke correctly, and the FV-status snapshot sentence is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a computational tool with an opaque policy_parameters object and no manifest link inline, the description never states what inputs the decision function expects or what the estimate represents. The presence of an output schema excuses return-value detail, but the core task remains unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute modes without adding format or syntax detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names a verb (estimate) and resource (cross-venue margin capital), and the opening line repeats it, but the body never explains what the estimator actually computes or how it relates to siblings like estimate_cross_margin_benefit or estimate_ficc_margin_netting. An agent cannot tell this apart from adjacent margin tools without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no routing to alternatives. The only instruction is an input constraint ('Use synthetic or anonymised inputs only'), which is not usage selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

estimate_ficc_margin_nettingFICC Margin & Netting EstimatorB
Read-onlyIdempotent
Inspect

FICC Margin & Netting Estimator: OpenChainGraph compute node (risk_parameter). Regulatory deadline: 2027-06-30 (repo-margin economics (W-B).). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-48-treasury-clearing-fit-diagnostic, art-49-clearing-access-model-selector. Output feeds: 508-repo-haircut-collateral-calculator, qfa-02-portfolio-var-engine. Open at: https://ainumbers.co/chaingraph/art-50-ficc-margin-netting-estimator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
assumptionsNo
estimated_vbmNo
net_cleared_imNo
margin_by_bucketNo
gross_bilateral_imNo
netting_benefit_pctNo
netting_benefit_usdNo
done_away_uplift_pctNo
minimum_charge_appliedNo

TDQS

B3.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive/openWorld=false), the description discloses substantial behavioral traits: deterministic compute, default server-side execution on Cloudflare Workers with registered kernels, an explicit browser-delegation path, transient processing with no storage/logging/retention, and AP2 artifact export carrying an execution_hash for chain provenance. This is rich, decision-relevant context an agent could not infer from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the title, but padded with regulatory-deadline framing, an FV-status explanation ("a snapshot, not a subscription... verifies offline"), and a long URL plus hash. Much of this boilerplate does not help an agent select or invoke the tool, so it is not efficiently sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and annotations plus the description cover compute delegation, data handling and provenance chaining. However, the description never clarifies what the FICC margin/netting result represents or what fields policy_parameters expects, leaving a real gap for a compute node with a free-form input object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description restates the compute modes largely as the schema already documents, and only hints at parent_hashes/parent_tool_ids via the upstream-artifact listing. The free-form policy_parameters object is left entirely to the schema/manifest, so the description adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title carry the meaning ("FICC Margin & Netting Estimator"), and the description labels it an "OpenChainGraph compute node (risk_parameter)" with context about upstream/downstream artifacts. But it never states what the tool actually computes (a netted FICC margin estimate), so it does not differentiate itself from siblings like estimate_cross_margin_benefit or compute_multilateral_netting. Purpose is implied by name, not articulated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute modes (auto/server/browser, gpu delegation) and says to use synthetic or anonymised inputs, but gives no guidance on when to choose this tool versus the many margin/netting siblings. There is no when-to-use, when-not-to-use, or alternative-tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_decision_treeDeclarative Decision-Tree EvaluatorB
Read-onlyIdempotent
Inspect

Declarative Decision-Tree Evaluator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-628-declarative-decision-tree-evaluator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathNo
boundsNo
weightNo
messageNo
tree_idNo
verdictNo
error_codeNo
scope_noteNo
tree_versionNo
matched_node_idNo
matched_citationNo
closed_operator_setNo
tree_digest_recomputedNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the description earns credit for adding genuinely new traits: inputs are processed transiently and not stored/logged/retained, output is an AP2 artifact carrying execution_hash for provenance, and an offline-verifiable FV-status receipt is referenced. This is real behavioral context beyond the safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is dense and front-loads the title/JSON-LD-style label, but then diverges into compute binding mechanics and a verbose FV-status sentence with a long hash. The core purpose and usage constraints are buried among provenance boilerplate, so it is only moderately well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering the safety profile and an output schema covering return values, the description supplies the remaining essentials: compute-mode semantics, the privacy/no-retention stance, the AP2 artifact export, and the chaining inputs. The only real gap is that policy_parameters field names are punted to an external manifest, which slightly limits a fully self-contained call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters fully. The description restates the compute mode behavior but adds nothing about the chaining parameters or the shape of policy_parameters beyond deferring to 'the tool's manifest.' Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title pair (evaluate_decision_tree / Declarative Decision-Tree Evaluator) makes the verb and resource clear, and the description adds the domain tag (compliance_mandate compute node). However, the body never says what the decision tree actually decides or what the input policy represents, and it spends most of its length on compute/delegation mechanics rather than purpose. It does not differentiate itself from the many sibling evaluators (evaluate_globe_safe_harbour_tests, evaluate_irrbb_sot_eve, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does give actionable operating guidance: default compute:'auto' runs server-side for gpu:false nodes with a registered kernel, 'browser' forces client-side, and 'Use synthetic or anonymised inputs only.' But it never states when to reach for this tool versus sibling evaluators, nor any task-level preconditions, so the when-to-use guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_globe_de_minimis_exclusionGloBE Permanent De Minimis Exclusion EvaluatorC
Read-onlyIdempotent
Inspect

GloBE Permanent De Minimis Exclusion Evaluator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-637-globe-de-minimis-exclusion.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesNo
fiscal_yearNo
jurisdictionNo
election_madeNo
years_includedNo
income_test_metNo
years_evaluatedNo
revenue_test_metNo
deemed_zero_topupNo
max_years_enforcedNo
thresholds_appliedNo
partial_window_usedNo
de_minimis_availableNo
parameter_set_versionNo
averaging_window_yearsNo
manual_review_requiredNo
average_globe_income_eurNo
average_globe_revenue_eurNo
average_globe_income_is_lossNo
years_excluded_no_constituent_entitiesNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower — yet the description adds real value: inputs are processed transiently and not stored or logged, compute runs server-side on Workers unless compute:'browser' forces delegation, and an AP2 artifact with execution_hash is exported for provenance. It also warns to use synthetic/anonymised inputs only. The main omission is any statement of failure modes or what the FV-status receipt implies operationally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense paragraph that is front-loaded with the tool's identity, but a large share of the text is family boilerplate (compute binding, transient processing) that duplicates the schema's compute description and the annotations. The sentences that matter for selection — what the de minimis test evaluates — are absent, so the length is not earning its place for the agent's decision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required. However, for a domain-specific tax computation the description supplies no domain semantics: no thresholds, no jurisdiction framing, and no indication of what fields policy_parameters must contain beyond pointing at an external manifest. An agent cannot confidently construct a correct call from this definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids, and the description merely restates the compute modes. For the one parameter that matters most — the free-form policy_parameters object — the description defers to 'the tool's manifest for field names,' adding no semantics. Baseline 3 is appropriate given the schema does the heavy lifting, but the core domain inputs remain opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name identify a specific verb+resource (evaluate the GloBE permanent de minimis exclusion), so the agent knows the broad domain. But the description body never explains what the evaluation actually does — the de minimis thresholds, per-jurisdiction test, or what a result means — and instead repeats the title verbatim. It is differentiated from siblings only by the GloBE label, not by any stated scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many adjacent GloBE siblings (compute_globe_topup_tax, compute_globe_jurisdictional_etr, compute_globe_sbie_topup, evaluate_globe_safe_harbour_tests, compose_globe_gir). The only usage-like content is the compute-mode routing, which is infrastructure rather than task selection. An agent must infer applicability from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_globe_safe_harbour_testsGloBE Transitional Safe Harbour Test EvaluatorC
Read-onlyIdempotent
Inspect

GloBE Transitional Safe Harbour Test Evaluator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-456-globe-safe-harbour-tests.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
testsNo
fiscal_yearNo
passing_test_idsNo
safe_harbour_metNo
deemed_zero_topupNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses genuinely useful behavioral context: transient/no-retention input handling, that compute:'browser' returns a delegation URL, that gpu:true nodes always delegate, and that it exports an AP2 artifact with execution_hash plus an offline-verifiable FV-status receipt. This is real added value over the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by generic platform boilerplate (kernel registration, Cloudflare Workers, AP2 provenance, FV-status receipt) repeated in near-identical phrasing. The one sentence of domain substance is absent, so large portions do not earn their place, and the genuinely task-relevant information is not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the execution/provenance environment is fully covered. But for a complex domain node the description omits what the safe harbour tests consist of and what inputs policy_parameters expects, leaving the core invocation semantics unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids. The pivotal parameter, policy_parameters, is an opaque free-form object whose field names are deferred to 'the tool's manifest' in both description and schema, so the description adds no meaning for the actual decision inputs. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title convey the general function ('evaluate GloBE transitional safe harbour tests' as a compliance_control compute node), so the verb and resource are identifiable. However, the description never says what the tests actually are (e.g. de minimis, simplified ETR, routine profits) or what the node returns, so it does not distinguish itself from close siblings like evaluate_globe_de_minimis_exclusion, compute_globe_jurisdictional_etr, or compute_globe_sbie_topup. It gives the category but not the specific operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over the many other GloBE/OpenChainGraph nodes. The only conditional logic is about compute mode (auto/server/browser), which is execution plumbing, not task selection. An agent gets no signal about the scenario this tool is for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_irrbb_sot_eveIRRBB SOT EVE EvaluatorB
Read-onlyIdempotent
Inspect

IRRBB SOT EVE Evaluator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-183-irrbb-eve-shock-calculator. Output feeds: art-185-irrbb-sot-nii-evaluator. Open at: https://ainumbers.co/chaingraph/art-184-irrbb-sot-eve-evaluator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eve_outlierNo
tier1_capitalNo
worst_delta_eveNo
sot_eve_threshold_pctNo
delta_eve_pct_of_tier1No

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/open-world=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, execution delegates to a browser URL in certain modes, and an AP2 artifact with execution_hash is exported for provenance. These are meaningful traits not recoverable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title is front-loaded and the artifact-chain sentence is useful, but a large fraction of the text is promotional/boilerplate (the FV-status snapshot URL and its offline-receipt caveat, the site link) that does not help an agent call the tool. Structure is acceptable but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. Combined with full schema coverage and covering annotations, the description supplies the missing pieces an agent needs: chaining inputs (parent hashes/tool ids), compute-mode behavior, and data-handling constraints. Only the absence of a domain-level statement of what is being evaluated keeps it short of full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description's compute-mode explanation largely repeats the schema's enum description, and it adds no format or ordering detail for parent_hashes/parent_tool_ids. Baseline 3 applies since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name ('IRRBB SOT EVE Evaluator') identify a specific verb and domain resource, and the body names upstream (art-183-irrbb-eve-shock-calculator) and downstream (art-185-irrbb-sot-nii-evaluator) artifacts. However, the description never states in domain terms what 'SOT EVE' evaluation actually computes or returns; the body is dominated by infrastructure boilerplate rather than explaining the purpose. It is distinguishable from siblings only via the artifact chain, not a stated purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives some operational guidance: default 'auto' computes server-side, 'browser' forces client-side delegation, and gpu:true nodes always delegate. But there is no explicit when-to-use-this vs. a sibling condition (e.g., vs. calculate_irrbb_eve_shocks or evaluate_irrbb_sot_nii), and no statement of prerequisites for supplying parent hashes. Usage is implied rather than prescribed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_irrbb_sot_niiIRRBB SOT NII EvaluatorB
Read-onlyIdempotent
Inspect

IRRBB SOT NII Evaluator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-184-irrbb-sot-eve-evaluator. Open at: https://ainumbers.co/chaingraph/art-185-irrbb-sot-nii-evaluator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nii_outlierNo
projected_niiNo
threshold_setNo
worst_delta_niiNo
delta_nii_pct_of_niiNo
sot_nii_threshold_pctNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description adds real behavioral context: determinism, server vs browser delegation semantics, a browser delegation URL fallback, transient processing with no storage/logging/retention, a synthetic/anonymised-input requirement, and an AP2 artifact with execution_hash. The remaining gap is error/failure behavior, but this is a strong addition over what the annotations already cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is reasonably front-loaded by naming the node type first, but it wastes space on duplicated phrasing ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and a long FV-status hash-plus-URL sentence of marginal value for selection. Much of the text is infrastructure metadata rather than guidance an agent needs to pick and call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return format need not be explained, and the description covers execution/distribution adequately. Yet for a compliance compute node whose core input is policy_parameters, it supplies no domain field semantics or computational scope, leaving the agent unable to verify it is the right node or how to populate the decision inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics that the compute property already documents, and adds no independent meaning for parent_hashes, parent_tool_ids, or policy_parameters — the latter's field names are deferred entirely to an external manifest the agent does not have.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title identify an IRRBB SOT NII evaluator, and the prose reference to consuming artifacts from art-184-irrbb-sot-eve-evaluator distinguishes it from the sibling EVE evaluator. However, the body itself never states what the node computes (e.g. delta-NII under a supervisory rate shock) or what decision it supports; it mostly describes the ChainGraph execution substrate rather than the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is implied ordering guidance via the declared upstream dependency on art-184-irrbb-sot-eve-evaluator, and the compute-mode rules (auto/server/browser) tell the caller how to invoke it. But there is no explicit when-to-use vs alternatives such as evaluate_irrbb_sot_eve, check_irrbb_csrbb_scope or run_irrbb_disclosure_fit, nor any stated prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

examine_lc_document_presentationUCP 600 / ISBP 745 Document Examination AssemblerC
Read-onlyIdempotent
Inspect

UCP 600 / ISBP 745 Document Examination Assembler: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-570-ucp600-document-examination-assembler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
draftsNo
verdictNo
decisionNo
findingsNo
scope_noteNo
tolerancesNo
clause_noteNo
cross_documentNo
insurance_checkNo
rejected_inputsNo
presentation_dateNo
examination_windowNo
presentation_windowNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive/closed-world, but the description adds genuinely useful behavior: transient input processing with no storage or logging, a warning to use synthetic/anonymised inputs, browser delegation for gpu:true nodes, and an AP2 artifact export with execution_hash. These are non-obvious operational traits that annotations alone would not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure boilerplate, a documentation URL, and a full FV-status receipt hash, pushing the actual task definition out of the front-loaded position. The hash and provenance-receipt sentence consume space without helping an agent decide or call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, for a domain-specific compliance compute node the description never says what the examination determines (discrepancies, compliance verdict, artifact contents), and it leaves policy_parameters field names entirely to the manifest, so an agent cannot synthesize a valid payload from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute enum semantics (duplicating the schema) and adds nothing about parent_hashes ordering, chaining rules, or the actual policy_parameters field names, which the schema explicitly defers to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify the domain (UCP 600 / ISBP 745 document examination), but the description body itself only classifies the tool as a 'compute node (compliance_control)' rather than stating what the examination actually does or produces. The agent can infer the purpose from the name/title but gets no verb-level explanation of the operation in the description text itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode selection (auto/server/browser) but gives no guidance on when to use this tool versus closely related siblings such as validate_mt700_lc_fields, verify_trade_document_set, or lint_ucp_checkout_payload. No prerequisites, no exclusions, no routing logic for the LC-examination task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explain_regrpt_varianceRegulatory Report Period-over-Period Variance ExplainerC
Read-onlyIdempotent
Inspect

Regulatory Report Period-over-Period Variance Explainer: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-485-regrpt-variance-explainer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
summaryNo
variancesNo
prior_as_ofNo
current_as_ofNo
policy_versionNo
compliance_flagsNo

TDQS

C2.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description goes beyond them with genuinely useful behavior: compute:'browser' returns a browser delegation URL, gpu:true always delegates, inputs are transient and not retained, synthetic/anonymised inputs only, and an AP2 artifact with execution_hash is exported. The 'Use synthetic or anonymised inputs only' constraint is exactly the kind of context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is compact and front-loads the tool identity, but the opening repeats the title verbatim and a large share of the text is chain-provenance/FV-status boilerplate rather than operational information about this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The decision function inputs live in an opaque policy_parameters object with no field names given anywhere, and the description never says what a variance explanation consists of or requires. Output schema and annotations cover returns and safety, but the core operation remains unexplained for a tool that is presumably data-hungry.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description repeats the compute-mode semantics but adds nothing about policy_parameters content beyond deferring to 'the tool's manifest', which the schema also does. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the title ('Regulatory Report Period-over-Period Variance Explainer: OpenChainGraph compute node') and then pivots to infrastructure boilerplate about compute modes and FV receipts. It never states what the variance explainer actually computes or what a caller gets back, so purpose is only inferable from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as run_regrpt_edit_checks, reconcile_report_to_general_ledger, or the many other regulatory compute nodes. No prerequisites, no when-not-to-use, no routing to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_artifactExport a ChainGraph artifact as xlsx / pdf / csv / xbrl / vcA
Read-onlyIdempotent
Inspect

Render a verified OpenChainGraph v0.4 artifact into a chaingraph_export profile (OCG Standard §13). Generated downstream of and EXCLUDED from the execution_hash preimage — the export is a view, not a fact; verification always routes back to the canonical JSON artifact. Pass the FULL artifact you received from a compute tool (the server is stateless — there is no hash cache). Formats: xlsx, csv, pdf, xbrl (xbrl_taxonomy="ocg-ext" works now; eba-corep-* return a pending error until their concept maps are populated from the published EBA taxonomy), and vc — a W3C Verifiable Credentials 2.0 rendering (OCG §13.11, application/vc+json) available on every node; it re-states the canonical execution_hash via ocg:hashAnchor and mints no new hash/proof. readOnlyHint: true; zero PII, zero payload logging.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesExport profile. xlsx/csv/pdf/xbrl/vc implemented; vc = W3C Verifiable Credentials 2.0 (base profile, all nodes).
artifactYesFull v0.4 ChainGraph artifact (policy_parameters + output_payload + execution_hash + chain).
xbrl_taxonomyNoRequired only when format="xbrl" (e.g. "eba-corep-own-funds").

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint, etc.), the description adds critical behavioral context: 'Generated downstream of and EXCLUDED from the execution_hash preimage — the export is a view, not a fact', 'zero PII, zero payload logging', and the stateless nature of the server. It also discloses the pending-error behavior for certain taxonomies. This significantly exceeds what annotations alone convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but every sentence provides essential guidance (format caveats, statelessness, verification semantics). It front-loads the core purpose in the first sentence. While some redundancy exists (e.g., 'readOnlyHint: true' is already in annotations), the content is justified and not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers input requirements, supported formats, special behaviors, and error conditions. With no output schema, it partially describes the output (e.g., 'vc — a W3C Verifiable Credentials 2.0 rendering (application/vc+json)') but does not explicitly state the return type for other formats. Given the tool's complexity and the richness of annotations, the description is largely complete, though a brief note on response structure would elevate it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters, so the baseline is 3. The description adds value by elaborating on the format parameter (e.g., 'xbrl_taxonomy="ocg-ext" works now; eba-corep-* return a pending error') and clarifying the artifact parameter ('Pass the FULL artifact you received from a compute tool'). This goes beyond the schema but doesn't exhaustively detail every parameter's edge cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Render a verified OpenChainGraph v0.4 artifact into a chaingraph_export profile'. It specifies exact output formats (xlsx, xbrl, csv, pdf, vc) and explicitly distinguishes it as a view rather than a fact, which differentiates it from sibling tools like build_chaingraph or verify_execution_hash.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Pass the FULL artifact you received from a compute tool (the server is stateless — there is no hash cache)'. It also warns about unsupported taxonomy values ('eba-corep-* return a pending error until their concept maps are populated') and clarifies that verification routes back to the canonical JSON artifact, effectively saying when not to rely on the export for verification.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_chainFind ChainGraph workflow chainA
Read-onlyIdempotent
Inspect

BM25 search over all 368 AINumbers ChainGraph chains. Returns ranked chains with their full recipe: ordered node sequence, deep-links, composer URL, and entry tool mcp_name. Agent flow: find_chain(query) → read recipe → call the listed node MCP tools in order, passing parent_hashes between steps. Task-shaped queries work well: "reserve composition recompute", "FR 2052a classification", "CCP margin replication", "SR 26-2 model validation benchmark", "litigation damages recompute", "evidence pack assembly".

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural-language or keyword search (e.g. "AML programme", "DORA ICT readiness", "MiCA CASP", "PQC migration", "Basel capital", "reserve composition", "2052a classification", "CCP margin", "model validation benchmark", "damages recompute", "evidence pack").
top_nNoMax results to return (default 5).

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint, which lowers the bar. The description adds useful behavioral context beyond the annotations: the BM25 ranking algorithm, the fixed dataset scope of 368 chains, the exact return fields, and the intended downstream workflow. This clarifies exactly what the agent can expect and what it should do with the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and scope, followed by return contents, then agent flow, then query examples. Every sentence earns its place; the example list is slightly long but directly improves query formulation. No meaningless filler or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple read-only search endpoint with a minimal schema and no output schema, and the description fully documents the return format: ordered node sequence, deep-links, composer URL, and entry tool mcp_name. It also completes the workflow context by explaining how results should be consumed. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful semantic guidance beyond the schema. It explains that queries are task-shaped and provides concrete examples, which helps the agent choose effective query text. The top_n parameter is already fully documented in the schema, so no additional description is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with a specific verb and subject: BM25 search over all 368 AINumbers ChainGraph chains, and the output shape is precisely stated (ranked chains with full recipe fields). This differentiates it from sibling tools that build, run, or emit chains, such as build_chaingraph, run_chain, and emit_chaingraph_artifact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly tells the agent how to use the tool: find_chain(query) → read recipe → call the listed node MCP tools in order while passing parent_hashes. Task-shaped query examples are provided, which is strong practical guidance. However, it does not explicitly name what to use when not, such as build_chaingraph for creating a chain or run_chain for executing one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_prediction_arbitragePrediction Market ArbitrageC
Read-onlyIdempotent
Inspect

Prediction Market Arbitrage: OpenChainGraph compute node (event_market_pnl). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-211-prediction-market-analyzer. Open at: https://ainumbers.co/chaingraph/art-212-prediction-market-arbitrage.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fee_aYes
fee_bYes
payoutYes
venue_aYes
venue_bYes
arb_existsYes
disclaimerYes
net_profitYes
no_price_bYes
total_feesYes
k_contractsYes
stake_totalYes
yes_price_aYes
gross_profitYes
gross_spreadYes
net_edge_pctYes
consensus_gapYes
capital_deployedYes
gross_spread_pctYes
implied_prob_yes_aYes
implied_prob_yes_bYes
min_spread_to_break_evenYes

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive safety. Beyond that, the description discloses substantive behavior: compute-mode switching (auto/server/browser), transient non-retention of inputs, gpu:true always delegating, AP2 artifact export with execution_hash, and upstream artifact consumption. These are real behavioral traits not derivable from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the name and resource, but the body is bloated with infrastructure boilerplate, a self-verifying receipt hash, and a full URL, which dilute the operationally useful content. Several sentences do not earn their place for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations carry the safety profile, so return values and read/write semantics need not be explained. The chaining, provenance, and compute-mode context are present, but the absence of any statement about what the arbitrage computation actually evaluates leaves a core gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics but adds no field-level meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('Prediction Market Arbitrage') and identifies it as an OpenChainGraph compute node bound to the event_market_pnl kernel, which is more specific than the name alone. However, the actual function is buried under infrastructure boilerplate, and it never distinguishes itself from the sibling analyze_prediction_market, leaving ambiguity about what arbitrage computation it performs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives like analyze_prediction_market. The only directive is a data-hygiene constraint ('Use synthetic or anonymised inputs only'), which is a privacy precondition, not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_toolFind ChainGraph node toolB
Read-onlyIdempotent
Inspect

BM25 search over all 661 live AINumbers ChainGraph node tools. Returns ranked tools with mcp_name, URL, mandate type, and wave. Use to locate a specific computation node (e.g. "FRTB expected shortfall", "MiCA own funds", "XVA calculator", "reserve composition", "2052a", "initial margin", "model validation benchmark", "TVM / damages calculator") before calling it. Complements find_chain (chain-level) and list_ainumbers_tools (catalog-level).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural-language or keyword search (e.g. "FRTB", "XVA", "MiCA own funds", "AML risk rating", "stress test", "reserve composition", "2052a", "initial margin", "model validation").
top_nNoMax results to return (default 5).

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains the fuzzy/semantic nature of the match, which helps set expectations. It does not disclose any side effects, limitations, or failure modes, but since the tool is a read-only search, the annotation (no destructive flag) is consistent. Score limited by lack of detail on behavior beyond ranking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is one focused paragraph with concrete examples. It is easy to parse and directly actionable for an agent deciding whether to invoke this tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple discovery tool: it states what it does and what it returns (ranked tools). However, it lacks detail on result shape, ranking criteria, or how to handle empty results, which would help an agent fully trust the tool's output. The sibling tool list implies a catalog context, which is useful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides field names and types, but the description adds no extra semantics beyond what the schema already implies (query = string, limit = int). The name 'top_n' is unambiguous but its bounds and default behavior are only partially clarified by the schema example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it performs a semantic search over tool names and descriptions, with concrete examples of intended usage like locating a tool via natural language. It's distinct from a plain catalog listing, though it doesn't explicitly contrast with verbs used by sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains *how* to use it (query with natural language) and that results are ranked by semantic relevance. The examples of use cases (e.g. finding a tool by intent) provide practical guidance. It doesn't explicitly compare against chain-based or keyword tools, but the intent is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_attribution_stringAttribution String GeneratorC
Read-onlyIdempotent
Inspect

Attribution String Generator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-207-attribution-string-generator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
errorsYes
json_ldYes
rdfa_htmlYes
tasl_lineYes
disclaimerYes
license_urlNo
license_nameNo
license_spdxNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already covering readOnly/idempotent/non-destructive/closed-world, the description still adds real behavioral context: server-side vs browser-delegation execution, a returned delegation URL, transient processing with no storage/logging/retention, and a warning to use synthetic or anonymised inputs only. It exports an AP2 artifact with execution_hash for chain provenance, which is useful disclosure beyond the safety annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is repetitive ('Deterministic OpenChainGraph compute node' follows the header) and padded with a tool URL and a long, jargon-heavy FV-status receipt sentence that does not help invocation. The genuinely useful behavioral notes are buried behind identity restatement and infrastructure boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a rich schema, an output schema, and full annotations, the description covers execution, privacy, and provenance adequately, so return values need no explanation. However, the core question an agent must answer — what the tool computes and why it exists — is left unaddressed, leaving the definition incomplete on its most important point.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, making 3 the baseline. The description reinforces compute-mode behavior and mentions chaining/provenance, but adds little parameter syntax beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause largely restates the name and title ('Attribution String Generator: OpenChainGraph compute node'), and the body never explains what an 'attribution string' actually is or what content it generates. It gives infrastructural identity (compute node, compliance_mandate, exports an AP2 artifact) but no functional verb+resource that distinguishes it from siblings like emit_chaingraph_artifact or generate_zk_compliance_proof.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to pick this tool versus the many sibling generators, nor any exclusions or prerequisites. The compute 'auto/server/browser' material describes execution routing, not when/when-not to use this tool, so usage remains implied at best.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_iscc_codeISCC Content Code GeneratorB
Read-onlyIdempotent
Inspect

ISCC Content Code Generator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-202-tdmrep-reservation-builder. Open at: https://ainumbers.co/chaingraph/art-201-iscc-content-code-generator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
datahashNo
data_codeNo
iscc_codeNo
input_bytesNo
instance_codeNo
conformance_passNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description genuinely adds behavior beyond them: deterministic execution, server- vs browser-side compute routing with a returned delegation URL, transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash for chain provenance. That is meaningful operational context an agent would not get from the annotations alone, though return format and failure modes are still unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the name/title, but the body is one dense run-on block mixing compute mechanics, privacy notes, provenance, a URL, and a long FV-status hash paragraph that does not help an agent invoke the tool. The content is not padded arbitrarily, but a trailing metadata dump dilutes the operative sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the compute-mode and data-handling behavior is complete enough. The gap is on the input side: for a tool with a nested open-ended policy_parameters object, the description pushes the agent to an external manifest rather than defining what to supply, and it never states the core domain semantics of an ISCC code. Adequate but with clear holes for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including compute's enum and the parent_hashes/parent_tool_ids pairing) are already documented in the schema; the description's compute-mode text largely duplicates the schema enum description. For policy_parameters the description defers to 'the tool's manifest for field names', adding no field-level meaning. Baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description's first clause largely restates the title ('ISCC Content Code Generator: OpenChainGraph compute node') and never explains what an ISCC code is or what inputs produce it. It does add that it is a deterministic compute node that exports an AP2 artifact with an execution_hash, which is more than pure tautology, but the actual verb+resource semantics remain vague. An agent cannot tell from this text what the tool computes over content vs. its many sibling compute nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real guidance on the compute mode ('auto' vs 'server' vs 'browser', gpu:true always delegates) and a hard input constraint ('use synthetic or anonymised inputs only'), plus names a downstream consumer (art-202-tdmrep-reservation-builder). However, it never says when to select this tool over alternatives or what precondition/context makes an ISCC code the right output. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_zk_compliance_proofZK Compliance Proof GeneratorA
Read-onlyIdempotent
Inspect

ZK Compliance Proof Generator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-10-amla-transaction-typology-risk-scorer. Output feeds: cry-04-merkle-batch-verifier, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/cry-01-zk-compliance-proof-generator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
proof_resultNo
proof_systemNo
predicate_typeNo
predicate_labelNo
compliance_flagsNo
constraint_countNo
proof_commitmentNo
proof_ms_simulatedNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, yet the description adds genuinely non-structured behavior: inputs are processed transiently and not stored, logged, or retained; synthetic/anonymised inputs are required; auto/server/browser execution and GPU delegation semantics; and the FV-status receipt is a snapshot that verifies offline. That is meaningful operational context beyond the annotations, with only the boilerplate doc URL/receipt hash diluting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with useful facts (node identity, compute modes, data handling) but opens by restating the name/title verbatim, and the final FV-status sentence is a long, hash-laden tangent of marginal selection value. Several sentences earn their place; others (link, receipt provenance) do not clearly help an agent decide or invoke.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the chain links plus compute/data-handling notes cover most of what an agent needs. What remains missing is what the tool actually evaluates — the decision function behind policy_parameters and the meaning of a 'compliance_mandate' proof — which for a specialised ZK generator is a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the enum for 'compute' is fully documented in the schema, so the baseline is 3. The description restates the compute-mode behavior but adds nothing about parent_hashes/parent_tool_ids or policy_parameters beyond what the schema already supplies, so it neither compensates for nor extends the structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as an OpenChainGraph compute node in the 'compliance_mandate' family that generates a ZK compliance proof and exports an AP2 artifact with an execution_hash. It distinguishes itself from the huge sibling set by naming its upstream (art-10-aml-transaction-typology-risk-scorer) and downstream consumers (cry-04-merkle-batch-verifier, ptg-01-ap2-prompt-template-generator). However, the substance of the proof — what compliance mandate is proven and from which decision function — is left opaque ('see the tool's manifest'), so the agent learns the tool's plumbing but not its actual computation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage guidance is implied rather than stated: the chain-position sentence (consumes X, feeds Y) tells the agent where this fits in a workflow, and 'use synthetic or anonymised inputs only' is a real constraint. But there is no explicit when-to-use signal against alternatives in a sibling list crowded with proof/attestation/artifact tools (emit_chaingraph_artifact, verify_merkle_batch, build_ap2_cartmandate_hashchain), which an agent would need to choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ha_bundle_exportAssemble (and optionally SD-JWT-export) a §27.6 evidence bundleAInspect

Assembles a §27.6 haEvidenceBundle from a subject's collected human_accountability_records[] (reviewers, approvers, annotations, exception rationale, timestamps) -- same algorithm as the browser verify.html HA export card (kernels/_haevidence.mjs). Set sd_jwt:true to also export it as a Selective Disclosure JWT (§13.12), signed EdDSA over a fresh ephemeral did:key (generated per call, never reused) -- subject_hash/verification_result/kernel_version/policy_version/timestamps/submission_receipt are always-disclosed; reviewers/approvers/annotations/exception_rationale/input_hashes are selectively disclosable.

ParametersJSON Schema
NameRequiredDescriptionDefault
sd_jwtNoWhen true, also return an SD-JWT export of the bundle (default false).
recordsNohuman_accountability_records over this subject. Default: [].
input_hashesNosha256: hashes of the inputs the verification ran over. Default: [].
subject_hashYesRequired. The sha256: subject hash the bundle documents.
kernel_versionNoVersion tag of the kernel that produced verification_result.
policy_versionNoVersion tag of the policy the kernel was evaluated against.
submission_receiptNoPopulate ONLY after a real transmission -- never fabricate.
verification_resultNoThe §16/§18/§20 verdict.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavior beyond the annotations: the SD-JWT signing key is fresh and never reused, key bundle fields are always-disclosed while others are selectively disclosable, and the admonition to never fabricate submission_receipt is included. It also aligns with idempotentHint=false for the SD-JWT path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the primary action, and the details about signing keys, disclosure properties, and receipt integrity all earn their place. It reads like one long clause chain, but it is appropriate for a container tool with an optional export mode.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries more responsibility for explaining behavior. It says both what is assembled and what happens when sd_jwt is true, while the 100%-coverage schema handles parameter semantics. Exact return shape and error conditions remain implicit, but the execution intent is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all eight parameters, so the baseline is 3. The description adds value by clarifying that sd_jwt uses per-call EdDSA/did:key material, describing disclosure properties of the bundle fields, and identifying the records parameter contents as human accountability records.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by naming the exact action and artifact: 'Assembles a §27.6 haEvidenceBundle' from human_accountability_records plus the optional SD-JWT export. This clearly distinguishes the tool from generic sibling evidence-bundle tools such as assemble_ocg_evidence_bundle or build_evidence_pack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended context is explicit: it is the same algorithm as the browser verify.html HA export card and is scoped to §27.6 evidence bundles for human accountability records. It does not explicitly name alternative tools to avoid, but the domain constraint is strong enough to guide tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ha_gate_statusEvaluate a §27.4/§27.5 human-accountability gate preconditionA
Read-onlyIdempotent
Inspect

Given a step's haGatePolicy and the human_accountability_records[] collected for a subject, returns whether the gate is satisfied, held, rejected, escalated, or overridden -- same algorithm as the browser verify.html HA gate card (kernels/_hagate.mjs, SPEC.md §27.4-27.5). A rejection record is terminal-blocking regardless of policy; an active time-boxed override (§27.5) takes precedence over the underlying policy. Pure function: caller supplies nowISO for determinism.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYesThe haRole a satisfying approval record must carry.
now_isoYesCaller-supplied ISO 8601 clock (determinism; never Date.now() internally).
recordsNoCollected human_accountability_records over this subject. Default: [].
thresholdNoN for dual_control/review_required/hold. Default 1 (2 for dual_control).
gate_policyYesThe step's declared haGatePolicy.
subject_hashYesThe sealed artifact's sha256: subject hash.
require_conformantNoRequire §27.2 structural signature shape on every record (default true).

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, establishing it as a safe, deterministic pure function. The description adds value by noting that rejection records are terminal-blocking and active time-boxed overrides take precedence, providing behavioral details beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences covering purpose, behavioral details, and purity. It is front-loaded with the main purpose and contains no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the lack of output schema, the description enumerates possible return states (satisfied, held, rejected, escalated, overridden) and references the algorithm. However, it does not specify the exact output format (e.g., string, object with details) or fully explain parameter defaults like threshold's dual_control case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds some semantic value by explaining the purpose of nowISO for determinism and noting records default to empty array, but does not elaborate on other parameters like threshold defaults or require_conformant behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns whether a gate is satisfied, held, rejected, escalated, or overridden based on haGatePolicy and human_accountability_records, with specific verb 'returns' and resource 'gate precondition'. It references the exact algorithm from SPEC.md and distinguishes from sibling tools like ha_record_validate which handles individual records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. It mentions the tool is a pure function and the caller supplies nowISO for determinism, but no 'when to use' or 'when not to use' advice. Sibling context implies it's for evaluating the overall gate, but this is not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ha_record_validateValidate a §27 human-accountability recordA
Read-onlyIdempotent
Inspect

Structural (non-cryptographic) §27.2 signed-named-human check: does this record carry a §16 whole-artifact proof (eddsa-jcs-2022) whose verificationMethod is bound to the record's own identity.id? Does NOT verify the signature bytes -- pair with verify_execution_hash / a proof verifier for that. Use before counting a record toward ha_gate_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
recordYesA single human_accountability_records[] entry to check.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable behavioral context: it specifies the non-cryptographic nature, the specific check performed, and the requirement to pair with a signature verifier. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, each adding essential information. It is front-loaded with the purpose, followed by limitations and usage advice. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, one parameter, no output schema, and sufficient annotations, the description covers purpose, limitations, and usage context. It could optionally hint at return type or error conditions, but it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter (record) described as 'A single human_accountability_records[] entry to check.' The description adds only marginal extra meaning (signed-named-human check, identity.id binding), but the schema already conveys the core structure. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a structural (non-cryptographic) check on a §27 human-accountability record, specifically verifying a §16 whole-artifact proof bound to the record's identity.id. It distinguishes itself from signature verification and places itself in the broader workflow (use before ha_gate_status). This differentiates it from sibling tools effectively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('before counting a record toward ha_gate_status') and what it does NOT do ('Does NOT verify the signature bytes'), directing users to pair with verify_execution_hash or a proof verifier. While not exhaustive on when not to use, it provides clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_visa_tap_signatureVisa Trusted Agent Protocol Signature Inspector & ReadinessA
Read-onlyIdempotent
Inspect

Inspect a Visa Trusted Agent Protocol HTTP Message Signature and score TAP readiness. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
parsedNo
findingsNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds valuable context: it renders an interactive widget, runs client-side with zero PII and zero network. This goes beyond annotations to explain behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first sentence clearly states purpose, second explains execution mode. No redundant words, front-loaded with the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and an output schema, the description covers purpose and execution context. However, it does not detail the scoring output or the widget's behavior, which could be more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description mentions inputs are applied via AIN Bridge and references the manifest input_schema, but does not add new meaning beyond the schema for the single 'inputs' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('inspect') and resource ('Visa Trusted Agent Protocol HTTP Message Signature'), and adds the action of scoring TAP readiness. It distinguishes itself from the sibling tool 'inspect_visa_trusted_agent_protocol' by focusing on signature inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for inspecting signatures and scoring readiness, but does not explicitly state when to use this tool versus alternatives like inspect_visa_trusted_agent_protocol. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_visa_trusted_agent_protocolVisa Trusted Agent Protocol (TAP) Signature InspectorC
Read-onlyIdempotent
Inspect

Visa Trusted Agent Protocol (TAP) Signature Inspector: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-16-google-ap2-mandate-builder, art-22-agentic-payments-protocol-comparator. Output feeds: art-18-mcp-developer-readiness-scorecard, art-24-mastercard-agentic-token-builder, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-23-visa-trusted-agent-protocol-inspector.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
errorsNo
passesNo
verdictNo
findingsNo
warningsNo
parsed_labelNo
parsed_paramsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/idempotent/non-destructive, but the description adds real behavioral context: server-side execution on Cloudflare Workers by default, browser delegation URL for compute:'browser', gpu:true always delegating, and transient processing with no storage, logging, or retention. It also discloses the AP2 artifact/execution_hash export and the FV-status snapshot semantics. This is meaningful disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening repeats the title and then says 'OpenChainGraph compute node' twice in consecutive sentences. Compute behavior is explained in the description and again verbatim in the schema. The artifact lineage URLs and FV-status hash dominate the tail, pushing the actual function out of the front-loaded position it never occupies.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and compute/provenance mechanics are well covered. However, the core domain behavior — what a TAP signature inspection verifies or flags, and what policy_parameters should contain — is absent and delegated to an external manifest, leaving an agent unable to form the right inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description restates the compute modes but adds no syntax, ordering, or field-name detail beyond the schema, and defers policy_parameters fields to an external manifest. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name indicate a Visa TAP signature inspector, but the description body never states the actual operation — what is inspected, what output decision it produces. It leans on 'OpenChainGraph compute node (compliance_control)', which classifies the node rather than describing its purpose. A near-identical sibling, inspect_visa_tap_signature, exists and is never distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance or comparison against the many sibling inspector/validator tools, including inspect_visa_tap_signature. The compute-mode paragraph explains execution routing, not when this tool should be selected over alternatives. Only the 'use synthetic inputs only' caveat touches on invocation conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intoto_record_chain_runRecord a ChainGraph chain run as in-toto linksA
Read-only
Inspect

Wraps the result of a run_chain call (server/auto compute mode) as standard in-toto links, one per successfully-executed step, plus a generated in-toto layout matching the chain's linear topology (each step MATCHes the previous step's product). Materials/products are keyed by the step's execution_hash; byproducts carries the raw execution_hash. All links and the layout are DSSE-signed with one ephemeral Ed25519 keypair scoped to this call (never persisted) — first shipping instance of "in-toto for MCP" per the 2026 research gap survey. Verify the bundle offline with the in-toto Link Builder & Verifier (chaingraph/intoto-link-builder.html verify tab) or a reference implementation. Steps that did not run (input_required, skipped_by_gate, gpu_browser_only, etc.) are listed in skipped[] rather than silently omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_chain_resultYesThe structuredContent object returned by run_chain (must include chain and steps[]).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description adds behavioral context: generation of links/layout, ephemeral signing key, skipped steps listed in skipped[]. No contradiction with annotations. Could be improved by explaining the output structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long (5+ sentences) and includes some jargon and a reference to a research survey. It front-loads the purpose but could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the input, behavior, output format (in-toto links, layout, skipped array), and verification. Sufficient for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter; the description adds that it expects the structuredContent object from run_chain, which is useful context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it wraps the result of a run_chain call as standard in-toto links, one per step, plus a layout. It distinguishes this from siblings by specifying the in-toto output format and context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after a run_chain call and mentions offline verification, but does not explicitly state when to use this vs alternatives like build_workflow_links or other recording tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lei_kyb_checkLive LEI data-quality grading with GLEIF fetchA
Read-only
Inspect

Fetches an entity's live GLEIF LEI record (api.gleif.org -- the worker's only egress target for this tool, RULINGS-2026-07-19-EGRESS-APEX.md R1) and grades it across six GLEIF data-quality dimensions -- registration status, renewal timeliness, corroboration level, entity status, Level-2 parent disclosure, address completeness -- using the SAME deterministic grader as the tools/551 browser workbench (pasting the same record there reproduces identical grades). Returns per-dimension grades, a composite, and a receipt with source provenance (url, retrieved_at, response_digest). This is an ASSERTED FETCH, not a zkTLS proof of origin, and grades DATA QUALITY only -- never creditworthiness, sanctions status, or entity legitimacy.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiYes20-character ISO 17442 Legal Entity Identifier to look up.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, openWorldHint=true. The description adds significant behavioral context: specific egress target (api.gleif.org), deterministic grader cross-referenced with a browser workbench, return of provenance details (url, retrieved_at, response_digest), and the limitation that it is an asserted fetch without zkTLS proof. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that efficiently conveys the main action, dimensions, return structure, and caveats. It is front-loaded with the primary purpose. It could be slightly more structured (e.g., bullet points), but remains concise and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description covers all necessary context: what it does, what it returns (grades, composite, receipt with provenance), how it works (deterministic grader, cross-referenced), and limitations (asserted fetch, data quality only). This is comprehensive for an effective agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the required 'lei' parameter with a clear description. Schema coverage is 100%, so the description does not need to add more. The description mentions the parameter implicitly (LEI record) but does not add new constraints or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches a live GLEIF LEI record and grades it across six data-quality dimensions. It specifies the source (api.gleif.org), the grading dimensions, and the return structure (per-dimension grades, composite, receipt). This distinguishes it from siblings by emphasizing it is a fetch and not a zkTLS proof.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit exclusions: it is an asserted fetch, not a zkTLS proof, and grades only data quality, not creditworthiness or sanctions. This guides users when not to use the tool. However, it does not explicitly recommend alternatives for those use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_ab2013_training_data_disclosureAB 2013 Training Data Disclosure LinterC
Read-onlyIdempotent
Inspect

AB 2013 Training Data Disclosure Linter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-315-ab2013-training-data-disclosure-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
all_presentNo
per_datapointNo
present_countNo
statute_citationNo
total_datapointsNo
missing_datapointsNo
insufficient_evidenceNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so credit goes to what the description adds: transient/no-retention processing, synthetic-input requirement, browser delegation behavior for gpu:true nodes, and AP2 artifact export with execution_hash for provenance. That is meaningful operational context beyond the structured fields, though the FV-status paragraph is more provenance than behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Sentences are dense and the description starts with the tool identity, but a large share of the text is tangential infrastructure and FV-status URL content that does not help an agent invoke the linter. The genuine purpose statement is thin relative to the boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compliance-decision tool whose key input is an undocumented freeform policy_parameters object ('see the tool's manifest for field names'), the description gives no indication of the expected decision inputs or what constitutes a lint finding. An output schema and annotations cover return format and safety, but the substantive compliance context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids, making the baseline 3 correct. The description restates chaining/provenance at a high level but adds no syntax or field-level meaning beyond the schema, and critically leaves policy_parameters as an opaque freeform object with no field guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify the tool as an AB 2013 training-data-disclosure linter, but the description body substitutes that purpose with infrastructure boilerplate about OpenChainGraph compute nodes rather than stating what is linted or against which disclosure requirements. An agent can infer the resource from the name but gets no elaboration of the verb's actual behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative, despite many sibling tools in the same compliance-linting space (e.g. lint_aiuc1_control_evidence, build_ai_training_data_lineage_record). The description only explains compute-mode selection, which is a plumbing concern, not task-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_aiuc1_control_evidenceAIUC-1 Control Evidence LinterC
Read-onlyIdempotent
Inspect

AIUC-1 Control Evidence Linter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-304-aiuc1-evidence-pack-assembler. Open at: https://ainumbers.co/chaingraph/art-303-aiuc1-control-evidence-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
per_controlNo
aiuc1_versionNo
missing_countNo
overall_coverageNo
version_mismatchNo
automatable_scopeNo
per_pillar_coverageNo
receipt_backed_countNo
insufficient_evidenceNo
attestation_only_countNo
procedural_controls_out_of_scopeNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds real behavioral context beyond them: compute modes and server/browser delegation, gpu:true always delegating, transient processing with no storage/logging, and the export of an AP2 artifact carrying execution_hash. That is meaningful operational disclosure the schema and annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the title and broken into distinct clauses, but a large share of the text is reusable platform boilerplate (compute-binding paragraphs, retention notice, artifact export) that is not specific to this tool. The trailing FV-status snapshot sentence with a 64-char hash is low-value for an agent choosing a tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the annotations cover safety. But for a linter with a nested policy_parameters object and 4 parameters, the description omits the single most important thing: what constitutes valid 'AIUC-1 control evidence' and what the lint result means. Platform mechanics are covered; the tool's domain function is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode paragraph largely repeats the enum description verbatim and adds no syntax, ordering, or format detail for parent_hashes/parent_tool_ids. Baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mostly restates the name/title ('AIUC-1 Control Evidence Linter') and pads it with platform boilerplate. It never states what the linter actually validates about control evidence — no rules, checks, or expected artifact shape are described. 'OpenChainGraph compute node (compliance_mandate)' hints at the node category but an agent still cannot tell what the tool does beyond 'it lints something'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage instruction is an input-safety note ('Use synthetic or anonymised inputs only'), which concerns data hygiene, not tool selection. The downstream link ('Output feeds: art-304-aiuc1-evidence-pack-assembler') faintly implies workflow position, but there is no statement of when to use this vs. the many sibling linters or when not to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_arc_xreserve_configArc xReserve Config LinterC
Read-onlyIdempotent
Inspect

Arc xReserve Config Linter: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2026-07-18 (GENIUS Act §4 eligible-asset backing requirements; MiCA Art. 54 reserve requirements for EU EMT issuers.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-42-arc-fit-diagnostic. Open at: https://ainumbers.co/chaingraph/art-45-arc-xreserve-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gradeNo
verdictNo
fail_countNo
warn_countNo
compliance_flagsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description goes beyond them: it explains that inputs are processed transiently and not stored/logged/retained, that execution may run server-side or delegate to the browser, and that the output is an AP2 artifact with execution_hash plus chain provenance. That is meaningful behavioral context the schema alone does not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is long and front-loaded with platform boilerplate (Cloudflare Workers, browser delegation URL, FV-status snapshot URL, OpenChainGraph node identity) before any statement of what the tool does. Several sentences, including the offline-receipt note, do not help an agent decide whether or how to call this specific lint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema and annotations carry much of the burden, and the description does cover provenance/export behavior and chaining. But for a lint tool with a nested policy_parameters object whose field names live in an external manifest, the description never specifies what input shape counts as a valid config or what the lint returns, so it is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each of the four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) is documented in the schema, including the compute enum semantics. The description largely repeats the compute-mode text and adds no syntax or field-name detail for policy_parameters beyond pointing at the manifest, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name and boilerplate restate that this is an 'Arc xReserve Config Linter' tied to 'compliance_mandate' with GENIUS Act §4 and MiCA Art. 54 reserve obligations, so the domain is inferable. However, the description never states in a plain action+object sentence what the lint actually checks (which config fields, pass/fail vs. findings), and most of the text describes the OpenChainGraph compute infrastructure rather than the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions 'Use synthetic or anonymised inputs only' and that it 'Consumes upstream artifacts from: art-42-arc-fit-diagnostic', which is a useful prerequisite. But there is no guidance on when to pick this over the many similar siblings (check_genius_reserve_disclosure, check_mica_reserve_disclosure, simulate_stablecoin_reserve, run_arc_fit_diagnostic) or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_besu_settlement_contractBesu Settlement Contract LinterC
Read-onlyIdempotent
Inspect

Besu Settlement Contract Linter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-292-attest-settlement-orchestrator. Open at: https://ainumbers.co/chaingraph/art-289-lint-besu-settlement-contract.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
overallNo
findingsNo
fail_countNo
warn_countNo
artifact_kindNo
invariants_passNo
ruleset_profileNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: deterministic execution, server-vs-browser delegation semantics, transient processing with no storage or logging, synthetic-input-only requirement, and emission of an AP2 artifact carrying execution_hash. The privacy and delegation details go meaningfully beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core operational facts are front-loaded, but the passage is bloated: the FV-status snapshot URL and the 64-character hash are low-value for tool selection, and the artifact/consumer metadata crowds out the actual linting semantics. It is not wasteful in the way a one-liner is, but several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover safety. But for a lint tool with a nested policy_parameters object whose field names live only in an off-site manifest, the description never explains what is being validated or what inputs the decision function expects — a real gap for a tool complex enough to have chaining and delegation semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the 'compute' enum is documented in both schema and description, so the baseline is 3. The description restates the compute modes but adds no syntax, format, or valid-value detail for parent_hashes, parent_tool_ids, or policy_parameters beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title ('lint' + 'Besu settlement contract') conveys the verb and resource, but the description itself never says what the linter inspects or validates — it opens with infrastructure boilerplate ('OpenChainGraph compute node', 'Deterministic compute node') rather than purpose. An agent learns the compute model but not what the check actually does, and no sibling (e.g., lint_securities_settlement_message, lint_settlement_orchestrator_conformance) is distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on compute mode selection ('auto' vs 'server' vs 'browser') and a downstream consumer is named ('Output feeds: art-292-attest-settlement-orchestrator'), which hints at workflow position. However, there is no when-to-use-this-vs-an-alternative guidance, no prerequisites, and no indication of when this lint should be preferred over the many other lint_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_cbom_structureCBOM Structural Lint & CNSA-2.0 ClassifierB
Read-onlyIdempotent
Inspect

CBOM Structural Lint & CNSA-2.0 Classifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-386-lint-cbom-structure.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
findingsNo
data_versionNo
compliance_flagsNo
total_componentsNo
vulnerable_countNo
cnsa2_ready_countNo
structural_issuesNo
unclassified_countNo
total_algorithm_assetsNo
cbom_structurally_validNo
structurally_invalid_countNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safe-read profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real operational context: compute:"auto" resolves server-side on Workers while "browser" returns a delegation URL, gpu:true nodes always delegate, inputs are transient and neither stored nor logged, and the tool exports an AP2 artifact carrying an execution_hash for chain provenance. It stops short of describing failure modes or what happens when no kernel is registered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title is front-loaded and the compute-mode and data-handling sentences are useful, but a large share of the text is template boilerplate that does not help an agent select or call this specific tool — notably the long FV-status URL plus receipt-hash prose, which reads as a snapshot disclaimer rather than tool guidance. Signal-to-noise is mixed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the compute/chaining/privacy mechanics are covered. However, for a compliance lint/classifier whose payload lives in policy_parameters, the description never says what a CBOM structure check verifies or what CNSA-2.0 classification returns, leaving the substantive contract to an off-description manifest link.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters (including the compute enum and the policy_parameters escape hatch) are already documented in structured form; baseline is 3. The description's compute-mode sentence mirrors the schema rather than extending it, and it explicitly defers policy_parameters field names to 'the tool's manifest', which leaves the actual decision inputs unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause restates the title verbatim — 'CBOM Structural Lint & CNSA-2.0 Classifier' — which does convey a verb+resource, but the remaining sentences are platform boilerplate (compute modes, chaining, receipts) rather than explanation of what structural checks or CNSA-2.0 classification actually run. With dozens of sibling lint_*/validate_* tools (lint_spdx_sbom, validate_cyclonedx_sbom, lint_stock_token_valuation), the description does nothing to distinguish this one. Purpose is inferable but not elaborated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is given: nothing says when to lint rather than validate a CBOM/SBOM, when CNSA-2.0 classification matters, or which upstream artifacts should be chained via parent_hashes. The only directive is the safety caveat 'Use synthetic or anonymised inputs only', which constrains inputs but does not help select this tool over an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_cbpr_structured_addressCBPR+ Structured Address LinterC
Read-onlyIdempotent
Inspect

CBPR+ Structured Address Linter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-242-pacs008-party-completeness-validator. Open at: https://ainumbers.co/chaingraph/art-241-cbpr-structured-address-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
compliantNo
violationsNo
error_countNo
table_sourceNo
readiness_pctNo
table_versionNo
disambiguationNo
structure_typeNo
regulatory_basisNo
cbpr_plus_deadlineNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint/destructiveHint already declared, the description still adds real behavioral context: server-vs-browser compute routing, browser delegation URL on compute:'browser', transient processing with no storage or logging, a synthetic-inputs-only constraint, and the AP2 artifact + execution_hash provenance output. That is substantive disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is dominated by infrastructure boilerplate — Cloudflare Workers kernel registry, a chain URL, and an FV-status receipt hash — that an agent does not need to select or invoke a linter. The actual linting semantics are absent, so the length is wasted rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, but for a compliance-mandate linting tool the description never says what rules are checked or what policy_parameters should contain ('see the manifest' is left to the schema). Given four params, nested policy_parameters, and a crowded sibling set, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are documented in the schema itself, including the compute enum semantics. The description repeats the compute-mode rules but adds no field-level meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify a CBPR+ structured-address linter, but the description body never states what the tool actually does — it opens with a tautology ('CBPR+ Structured Address Linter: OpenChainGraph compute node') and then spends its words on compute-node plumbing. Nothing distinguishes it from siblings like lint_fedwire_structured_address, sweep_fedwire_addresses, or lint_lei_payment_binding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no exclusions relative to the many other lint/validate/sweep address tools. The only usage-adjacent signal is the chaining note 'Output feeds: art-242-pacs008-party-completeness-validator', which hints at downstream use but not at when to pick this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_compelling_evidence_ce30_agenticAgentic Dispute CE3.0 Evidence LinterB
Read-onlyIdempotent
Inspect

Agentic Dispute CE3.0 Evidence Linter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-01-ap2-mandate-chain-validator, art-23-visa-trusted-agent-protocol-inspector, art-24-mastercard-agentic-token-builder, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-297-agentic-dispute-ce30-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
networkNo
per_elementNo
reason_codeNo
ce30_readinessNo
missing_elementsNo
ce30_prior_txn_testNo
not_a_win_predictionNo
insufficient_evidenceNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations it discloses real behavior: inputs are processed transiently and not stored/logged/retained, compute auto/server/browser semantics, gpu:true always delegating, and that it exports an AP2 artifact carrying execution_hash for chain provenance. That is substantial added context for a read-only compute node.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool identity, but the single dense paragraph packs in URLs, an FV-status hash snapshot, and artifact IDs alongside the operational text. Much of the receipt/URL framing does not help an agent invoke the tool, so it is longer than needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, nested-payload compute node with an output schema present, the description covers compute modes, input handling, provenance export, and upstream artifact dependencies. Return values need not be described given the output schema, so it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameter meaning is already fully documented in the schema. The description restates the compute mode behavior but adds no syntax or format detail beyond the schema, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title identify the verb+resource (lint Agentic Dispute CE3.0 evidence), and the description adds that it is a deterministic OpenChainGraph compute node in the compliance_mandate family that exports an AP2 artifact. However, it never states what the linter actually checks or what decision function it runs, so the purpose stays abstract beyond what the title already conveys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives context (consumes specific upstream artifacts, requires synthetic/anonymised inputs, and offers compute mode semantics) but offers no explicit when-to-use vs sibling tools guidance or exclusions among the many lint_* alternatives. Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_crypto_asset_whitepaperCrypto-Asset Whitepaper Linter (iXBRL)B
Read-onlyIdempotent
Inspect

Crypto-Asset Whitepaper Linter (iXBRL): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-98-mica-casp-fit-diagnostic. Output feeds: cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-102-crypto-asset-whitepaper-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
ixbrl_validNo
annex_i_gapsNo
taxonomy_noteNo
sections_checkedNo
conformance_gradeNo
reference_versionNo
taxonomy_conformantNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, but the description adds genuinely useful context beyond them: transient processing with no storage/logging/retention, the synthetic-or-anonymised-inputs constraint, and the AP2 artifact/execution_hash export for provenance. The compute-mode paragraph largely repeats the schema's enum description, which dilutes but does not negate the added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the name/title restatement and a long boilerplate infrastructure block (compute modes, FV-status receipt URL) before any task-specific information. Several sentences restate schema fields rather than earning their place, though the irregular format makes chaining and input-policy facts reasonably scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations plus the retention/artifact notes cover the runtime contract. However, for a linter the most important context — what checks it performs on the whitepaper and what constitutes a pass/fail — is entirely absent, leaving an agent to infer scope from the manifest link.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute explanation duplicates the enum text verbatim rather than adding semantics, and it says nothing about how policy_parameters should be shaped for this specific linter, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'lint' plus the resource 'crypto-asset whitepaper' is clear enough at a high level, but the description never says what is actually being validated (which whitepaper disclosures/fields, against what rule set), and with ~100 sibling tools including several MICA-whitepaper checks it does not differentiate itself. It reads more as an infrastructure descriptor than a purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance versus alternatives like run_mica_casp_fit or check_mica_register_presence. The only usage signal is pipeline placement ('Consumes upstream artifacts from art-98-mica-casp-fit-diagnostic; Output feeds cry-04-merkle-batch-verifier'), which implies ordering but does not tell an agent when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_fedwire_structured_addressFedwire Structured Address LinterC
Read-onlyIdempotent
Inspect

Fedwire Structured Address Linter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-350-fedwire-address-sweep. Open at: https://ainumbers.co/chaingraph/art-349-fedwire-structured-address-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
networkNo
pii_noteNo
compliantNo
violationsNo
error_countNo
table_sourceNo
readiness_pctNo
table_versionNo
disambiguationNo
structure_typeNo
regulatory_basisNo
fedwire_chips_deadlineNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful traits beyond that: transient processing with no storage or logging, server-vs-browser delegation semantics, and export of an AP2 artifact with execution_hash for provenance, plus a downstream consumer ('art-350-fedwire-address-sweep'). That is substantive behavioral context the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense run-on of infrastructure details (Workers, kernels, gpu flags, AP2 provenance, FV-status URL) with the tool's actual function buried rather than front-loaded. Sentences are long and mix compute binding, privacy, provenance and receipt semantics, so a reader must parse far more than needed to decide whether to call it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the provenance/output-feed hints are helpful. However, for a lint tool that takes an open-ended policy_parameters object, the description gives no indication of the required address fields or validation rules, leaving the agent unable to construct a meaningful call from the description and schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail, including the compute enum. The description echoes the compute modes but adds nothing on the actual lint inputs — policy_parameters is left to 'the tool's manifest' in both schema and description. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the name and title ('Fedwire Structured Address Linter: OpenChainGraph compute node (compliance_mandate)') rather than describing the linting action. Beyond the 'compute node' category label and the artifact it exports, it never says what a Fedwire structured address lint actually checks or produces. It also does no explicit sibling differentiation against peers like lint_cbpr_structured_address or sweep_fedwire_addresses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage-adjacent guidance is 'Use synthetic or anonymised inputs only' and the compute-mode trade-offs (auto/server/browser), which govern execution location, not when to choose this lint over alternatives. There is no statement of when the tool is appropriate, what upstream data it expects, or which sibling covers a neighbouring case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_insurance_evidence_freshnessAIUC-1 Evidence Freshness LintC
Read-onlyIdempotent
Inspect

AIUC-1 Evidence Freshness Lint: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-304-aiuc1-evidence-pack-assembler. Open at: https://ainumbers.co/chaingraph/art-305-aiuc1-evidence-freshness-lint.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofNo
cert_expiryNo
stale_countNo
cert_expiredNo
stale_controlsNo
insufficient_evidenceNo
cert_expiring_within_daysNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real value: compute mode routing (auto/server/browser), that inputs are processed transiently and not stored/logged/retained, and that it exports an AP2 artifact with execution_hash for chain provenance. These are genuine behavioral traits beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens with a duplicated fragment ('AIUC-1 Evidence Freshness Lint: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and pads with provenance/FV-status URL text, burying the actual lint semantics. The compute-node boilerplate crowds out the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and chaining and compute behavior are covered. But the central question — what the freshness lint validates and on which fields — is left entirely to the manifest link, leaving the description incomplete for a compliance-lint tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates compute mode routing but adds no syntax or format meaning beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title indicate a lint over AIUC-1 evidence freshness, but the description never states what the lint actually checks or what constitutes 'fresh' vs stale evidence. It is dominated by compute-infrastructure boilerplate, so the agent must infer the real purpose. The sibling lint_aiuc1_control_evidence is not distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the upstream dependency (art-304-aiuc1-evidence-pack-assembler) and 'Use synthetic or anonymised inputs only', but gives no when-to-use vs alternative guidance, no prerequisites for the freshness check, and no distinction from lint_aiuc1_control_evidence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_lei_payment_bindingWolfsberg Payment Transparency & LEI Binding LinterC
Read-onlyIdempotent
Inspect

Wolfsberg Payment Transparency & LEI Binding Linter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-242-pacs008-party-completeness-validator. Open at: https://ainumbers.co/chaingraph/art-246-lei-payment-binding-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
pii_noteNo
lei_validNo
error_countNo
lei_resultsNo
table_sourceNo
table_versionNo
regulatory_basisNo
wolfsberg_field_resultsNo
wolfsberg_transparency_tierNo
wolfsberg_transparency_scoreNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety bar is met. The description adds genuinely useful, non-annotated behavior: inputs are transient (not stored or logged), it exports an AP2 artifact carrying execution_hash for chain provenance, and it consumes an upstream artifact from art-242-pacs008-party-completeness-validator. That chaining and data-retention context is real value beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is dominated by platform boilerplate repeated across every OpenChainGraph node — compute-mode behavior, Cloudflare Workers GPU kernel language, the FV-status snapshot URL, and the AP2 export clause. These sentences are front-loaded ahead of any tool-specific information, and the one sentence unique to this tool's logic is absent. Much of the text does not earn its place in a per-tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and 100% parameter coverage, the structured fields carry the mechanical contract. What remains missing is the substantive core: the rule set or standards this linter enforces and the failure modes it reports. For a compliance linter among dozens of similar linters, that omission is the difference between a selectable tool and an opaque one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description re-explains the compute-mode semantics rather than adding anything new, and says only 'see the tool's manifest for field names' for policy_parameters, which pushes parameter discovery outside the definition entirely. Baseline 3 for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line name the artifact ('Wolfsberg Payment Transparency & LEI Binding Linter') and classify it as a compliance_mandate compute node, but the body never states what the linter actually checks — which LEI-binding rules, against which payment fields, producing what verdict. It is distinguishable from unrelated siblings by name, but not from the ~40 other 'lint_*' tools in the set; an agent must infer the domain from the title alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisite conditions, and no named alternative. The only actionable instruction is 'use synthetic or anonymised inputs only', which is a data-handling constraint, not usage routing. The agent is left to guess whether this runs before validate_pacs008_party_completeness or replace it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_mcp_server_conformanceMCP Server Self-Attestation PackC
Read-onlyIdempotent
Inspect

MCP Server Self-Attestation Pack: OpenChainGraph compute node (infrastructure_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: cry-05-agent-action-audit-trail-aggregator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-33-mcp-server-self-attestation-pack.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fail_countNo
pass_countNo
warn_countNo
remediationNo
composite_gradeNo
composite_scoreNo
per_domain_scoresNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely useful behavioral context beyond them: transient processing with no storage/logging, a 'use synthetic or anonymised inputs only' constraint, and export of an AP2 artifact with execution_hash for chain provenance. It does not, however, explain what the conformance verdict or failure modes look like, so it stops short of 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with template boilerplate, an external URL, a raw FV-status content hash, and downstream-tool lists that do not help an agent decide or invoke. The actionable content (compute modes, no-retention, synthetic inputs) is buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a 4-parameter nested-object schema, an output schema, and many similar siblings, the description should clarify the conformance-checking intent and result semantics; instead it supplies execution/chaining metadata and a receipt URL. Because an output schema exists, return-value explanation is not required, but the core purpose and its differentiation remain missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters are documented in the schema (compute modes, parent_hashes, parent_tool_ids, policy_parameters). The description largely restates the compute-mode semantics already in the schema and adds no field-level detail for policy_parameters or the parent-hash chaining beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title promise an MCP-server conformance linter and self-attestation pack, but the description never states a concrete verb+resource for what it actually does — it opens with generic template text ('Deterministic OpenChainGraph compute node') rather than describing a lint/attestation operation. An agent cannot tell from the prose how this differs from sibling linters like lint_mcp_tool_definition or audit_mcp_tool_scope_revocation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only conditional guidance is about compute modes ('auto'/'browser'/'gpu:true'), which is execution plumbing rather than when-to-use guidance. There is no statement of when to invoke this tool versus the many sibling lint_*/check_mcp_* tools, nor any prerequisites for running a conformance check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_mcp_tool_definitionMCP Tool-Definition Linter & Annotation DesignerA
Read-onlyIdempotent
Inspect

Validate an MCP tool definition against JSON Schema 2020-12 and current naming, output-schema, and annotation rules; returns findings, a conformance score, and a recommended annotation set. Use when a developer wants to check an MCP tool definition before publishing. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
findingsNo
annotationsNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations that declare read-only and idempotent behavior, the description reveals non-obvious traits: it renders an interactive widget, operates client-side with zero PII and zero network, and uses AIN Bridge for inputs. This fully discloses the execution model and data privacy.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with a clear front-loaded action. The second sentence is slightly long, bundling multiple details, but each part serves a purpose. Minor verbosity is acceptable given the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (linter with output schema, widget rendering, client-side execution) and rich annotations, the description covers purpose, usage, behavioral traits, input mechanism, and return values (findings, score, annotation set). No gaps are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% description coverage for the 'inputs' parameter ('Map of tool input element IDs to values...'). The description adds only minor context about widget rendering and AIN Bridge prefill, not substantially enriching the parameter meaning beyond what the schema offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates MCP tool definitions against specific rules (JSON Schema 2020-12, naming, output-schema, annotations) and returns findings. However, it does not explicitly differentiate from sibling lint tools that focus on domain-specific validation, relying on context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use when a developer wants to check an MCP tool definition before publishing,' providing clear context. It does not mention when to avoid using it (e.g., for domain-specific linting), but the sibling list implies alternative tools exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_metro2_recordMetro 2 Credit-Reporting Record LintC
Read-onlyIdempotent
Inspect

Metro 2 Credit-Reporting Record Lint: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-398-lint-metro2-record.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
pii_noteNo
compliantNo
error_countNo
field_statusNo
table_sourceNo
table_versionNo
warning_countNo
disambiguationNo
regulatory_basisNo
obsolete_per_fcraNo
metro2_subset_scoreNo
is_delinquent_statusNo
subset_coverage_statementNo

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior. The description adds genuinely useful non-annotation detail: inputs are processed transiently and not retained, compute modes determine server vs. browser execution, and it exports an AP2 artifact with execution_hash. However, it says nothing about what checks run, what violations are detected, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but its budget is spent on repeated infrastructure boilerplate ('OpenChainGraph compute node' stated twice, compute-binding, FV-status receipt) while omitting the tool's actual purpose. It is verbose where it should not be and silent where it should not be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and annotations cover the safety profile. But the essential question an agent needs answered — what a Metro 2 record lint checks and when to prefer it over sibling linters — is absent, leaving the definition incomplete for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters are fully documented in the schema and a baseline of 3 applies. The description restates the compute modes and mentions chain provenance, adding little beyond the schema's own enum descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title identifies a specific resource (Metro 2 credit-reporting record) and verb (lint), and the description repeats it, but it never states what the linting actually verifies or how it differs from siblings such as lint_mismo_uldd_ulad or lint_cbpr_structured_address. The bulk of the text is compute-plumbing rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many other lint_* validators, nor any prerequisites or exclusions. Usage is only implied by the word 'lint' in the title.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_mismo_uldd_uladULDD/ULAD Structural LinterB
Read-onlyIdempotent
Inspect

ULDD/ULAD Structural Linter: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-226-mismo-uldd-ulad.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorsNo
pii_noteNo
warningsNo
lint_passNo
uldd_phaseNo
error_countNo
license_noteNo
table_sourceNo
field_resultsNo
table_versionNo
warning_countNo
fields_suppliedNo
regulatory_basisNo
uldd_mandate_dateNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds genuinely useful behavior beyond that: transient, non-stored/non-logged input processing, server-vs-browser compute semantics, and an exported AP2 artifact carrying execution_hash for provenance. It does not describe failure modes or what an invalid record produces, but it is well above annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The linter-relevant content is a single line; the remainder is template boilerplate about OpenChainGraph compute binding, privacy, artifact export, and an offline-verifiable FV-status receipt URL. The purpose line is front-loaded, but a large fraction of the text is not specific to this tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute/privacy/artifact model is covered. What is missing is domain substance: which ULDD/ULAD structural checks run and what the opaque policy_parameters object should contain, which the description explicitly leaves to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters), so the schema carries the load and a baseline 3 applies. The description restates the compute modes without adding detail and explicitly defers the policy_parameters field names to 'the tool's manifest', adding no semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and opening line state a specific verb+resource: a structural linter for ULDD/ULAD (MISMO mortgage delivery/closing datasets). That is enough for an agent to distinguish it from the many sibling lint_* tools by domain. However, the description never says what structural rules it enforces or what a lint result means, so the purpose is named but not elaborated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no routing relative to siblings such as validate_qfc_recordkeeping_file or lint_metro2_record. The only usage-shaped text is the compute-mode explanation and 'Use synthetic or anonymised inputs only', which is a data-handling constraint, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_securities_settlement_messageSecurities-Settlement Message Linter (ISO 20022 sese/semt)C
Read-onlyIdempotent
Inspect

Securities-Settlement Message Linter (ISO 20022 sese/semt): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-81-allocation-affirmation-conformance. Output feeds: cry-04-merkle-batch-verifier, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-82-securities-settlement-message-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
resultsNo
pass_rateNo
referenceNo
fail_countNo
pass_countNo
warn_countNo
total_issuesNo
total_messagesNo
scope_guard_noteNo
out_of_scope_countNo
in_scope_message_typesNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful behavioral facts beyond that: compute modes and their effects, client-side browser delegation, transient non-retention of inputs, the synthetic-inputs-only constraint, and export of an AP2 artifact with execution_hash for chain provenance. It stops short of describing failure modes or what a violation report looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dominated by low-selectability infrastructure boilerplate: kernel/GPU delegation wording duplicated from the schema, an artifact URL, and a long FV-status SHA-256 receipt string. The one sentence that actually characterizes the tool is buried rather than front-loaded, so the agent must wade through plumbing to find the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained here. But for a 4-parameter lint tool with a nested, field-anonymous policy_parameters object, the description defers to 'See the tool's manifest for field names' — leaving the agent unable to construct the actual lint input. Combined with no statement of what a violation or pass means, the definition is incomplete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents compute, parent_hashes, parent_tool_ids, and the free-form policy_parameters container. The description restates compute semantics and implies chaining via parent_hashes, adding no syntax or field-name detail. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title identify a linter for ISO 20022 sese/semt securities-settlement messages, and 'compliance_mandate' hints at the domain, so the resource and verb type are inferable. However, the description itself never states what the tool checks or produces — it spends its budget on compute-node mechanics. It also does not differentiate it from adjacent siblings such as lint_settlement_orchestrator_conformance, validate_dtcc_ca_iso20022_message, or check_ssi_conformance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is upstream/downstream wiring ('Consumes upstream artifacts from art-81-allocation-affirmation-conformance', 'Output feeds: cry-04..., ptg-01...'), which is workflow context rather than usage guidance. Nothing says when to run this linter versus other settlement/ISO 20022 validators, nor what preconditions (e.g. an upstream AP2 artifact) are required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_settlement_orchestrator_conformanceSettlement Orchestrator AttestationB
Read-onlyIdempotent
Inspect

Settlement Orchestrator Attestation: OpenChainGraph compute node (infrastructure_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-289-lint-besu-settlement-contract. Open at: https://ainumbers.co/chaingraph/art-292-attest-settlement-orchestrator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
overallNo
attestationNo
per_domain_scoresNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, and the description does not contradict them. It adds meaningful behavior beyond that: inputs are processed transiently and not stored or logged, compute:'browser' returns a delegation URL, gpu:true nodes always delegate, the export carries execution_hash, and it consumes a specific upstream artifact. This is genuine operational context a caller would not get from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense, run-on block mixing the tool's identity, compute semantics, retention policy, artifact export, upstream dependency, and an FV-status URL. Information is front-loaded with the title, but the FV-status paragraph and receipt-verification aside are tangential to invocation and dilute focus.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description does cover retention, compute delegation, and chaining. However, for a conformance-lint tool it never states what conformance criteria are evaluated or what inputs the policy_parameters should contain, leaving the core decision semantics underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute modes, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics and adds the upstream-source identifier for chaining, but adds little else about parameter formats or ordering rules beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool a 'Settlement Orchestrator Attestation' compute node and says it 'Exports an AP2 artifact with execution_hash for chain provenance,' which gives a concrete output. But the actual conformance-checking action implied by the name 'lint_settlement_orchestrator_conformance' is never stated, and most of the text describes compute-binding mechanics rather than what the tool verifies. An agent can tell it produces an attestation artifact but not what condition it checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no routing to alternatives, despite a very large sibling set that includes lint_besu_settlement_contract and other lint_* tools. The only usage-adjacent instruction is 'Use synthetic or anonymised inputs only,' which is a data-handling rule rather than invocation context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_stock_token_valuationValuation Double-Count / Decimal LinterB
Read-onlyIdempotent
Inspect

Valuation Double-Count / Decimal Linter: OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-319-rhc-valuation-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
deltaNo
verdictNo
discrepancyNo
correct_valueNo
corrected_expressionNo
double_counted_valueNo
computed_usd_value_under_testNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds real context: compute:"auto" runs server-side with kernel dispatch, compute:"browser" returns a delegation URL, gpu:true always delegates, inputs are transient and not retained, and an AP2 artifact with execution_hash is exported. That is genuine behavioral detail beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening 'Valuation Double-Count / Decimal Linter:' prefix repeats the title, and the trailing FV-status hash URL plus 'snapshot, not a subscription' sentence is operational noise that does not help invocation. The compute discussion is structured and front-loaded, but several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the definition doesn't need to explain returns. However, for a domain-specific linter it never describes what double-count or decimal conditions it flags, what policy_parameters fields drive it, or what a failing result implies, leaving the domain completeness thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description's compute explanation duplicates the schema almost verbatim and adds nothing about parent_hashes ordering or policy_parameters field names, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title 'Valuation Double-Count / Decimal Linter' names a specific check, but the description body mostly restates infrastructure boilerplate ('OpenChainGraph compute node (collateral_mandate)', 'Deterministic OpenChainGraph compute node') rather than explaining what the linter detects or how it differs from siblings like lint_arc_xreserve_config or lint_mcp_tool_definition. The purpose is inferable from the title but not developed in the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to run this linter, what inputs require it, or which alternatives exist. The only directive is 'Use synthetic or anonymised inputs only', which is a constraint rather than selection guidance. An agent cannot tell from this text when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_trace_cat_reportsTRACE / CAT Reporting LintC
Read-onlyIdempotent
Inspect

TRACE / CAT Reporting Lint: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-396-compute-15c3-3-reserve. Open at: https://ainumbers.co/chaingraph/art-397-lint-trace-cat-reports.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
trace_resultNo
rules_versionNo
cat_violationsNo
cat_events_validNo
regulatory_basisNo
cat_events_checkedNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real behavioral context: transient processing with no storage or logging, AP2 artifact export with execution_hash, upstream artifact consumption, and a verifiable offline FV-status receipt. The compute:'auto'/'browser' delegation behavior is disclosed. It stops short of describing what the lint produces or any rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is dominated by infrastructure boilerplate that does not aid tool selection: the compute-mode paragraph largely restates the schema's compute description, and the FV-status snapshot sentence with a full hash and receipt disclaimer is dead weight for an invoking agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compliance lint with a nested, undocumented policy_parameters object (schema defers field names to an external manifest), the description omits the one thing an agent needs: what rules or checks the lint applies and what input shape TRACE/CAT reports must take. Output schema existence removes the need to explain returns, but the core linting semantics are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; baseline 3 applies. The description reinforces compute-mode semantics and implies chaining via execution_hash, but adds no syntax or field detail for policy_parameters beyond what the schema (which defers to 'the manifest') already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name pairing states a verb and resource (lint TRACE/CAT reporting), which is discernible. But the description never explains what the lint actually validates (format, completeness, field rules), and it does not distinguish this from the many sibling lint_* tools such as lint_x12_claim_records or lint_metro2_record. Most of the text is spent on compute infrastructure rather than the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this lint versus alternatives, and no prerequisites beyond the data-handling note 'Use synthetic or anonymised inputs only.' The compute-mode explanation describes execution mechanics, not selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_ucp_checkout_payloadUCP Checkout Payload LintC
Read-onlyIdempotent
Inspect

UCP Checkout Payload Lint: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-564-ucp-checkout-payload-lint.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
verdictNo
findingsNo
rationaleNo
error_countNo
finding_countNo
warning_countNo
ucp_spec_sourceNo
ucp_spec_pinned_tagNo
ucp_version_declaredNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description earns credit for going further: transient processing with no logging or retention, deterministic server-side vs browser-delegation compute semantics, and export of an AP2 artifact carrying execution_hash for provenance chaining. It stops short of auth/permission requirements or failure behavior, so it is not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is not bloated, but it is not front-loaded either: the opening sentences are title restatement plus compute-binding boilerplate, and the operationally useful facts (transient processing, AP2 export, chaining) are buried mid-paragraph. The trailing spec URL and FV-status hash are long and of low selection value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and compute/parameter semantics are covered. What is missing is the substantive part of a lint tool's contract: what a UCP checkout payload is validated against and what kinds of findings to expect, which the description never touches.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all four parameters, so the schema already carries the parameter burden and 3 is the baseline. The description only loosely reinforces this by mentioning the execution_hash chaining concept and deferring to "the tool's manifest for field names," adding no syntax or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The body largely restates the title ("UCP Checkout Payload Lint: OpenChainGraph compute node") and then describes compute plumbing rather than what the lint actually verifies. An agent learns it is a deterministic compute node, but not what rules a UCP checkout payload is checked against, and no sibling (validate_acp_checkout, audit_acp_ucp_product_feed) is differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no routing to alternatives. The only directive is an input restriction ("Use synthetic or anonymised inputs only"), which is a data-handling constraint rather than usage guidance, and the compute modes duplicate the schema rather than telling the agent where this tool fits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_x12_claim_recordsX12 837/835 Healthcare-Claim Records LintC
Read-onlyIdempotent
Inspect

X12 837/835 Healthcare-Claim Records Lint: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-399-lint-x12-claim-records.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
phi_noteNo
compliantNo
claim_countNo
error_countNo
message_typeNo
table_sourceNo
table_versionNo
warning_countNo
disambiguationNo
regulatory_basisNo
total_charge_amountNo
subset_coverage_statementNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds genuinely new behavior: inputs are processed transiently and not stored/logged/retained, an AP2 artifact with execution_hash is exported for provenance, and browser delegation occurs for gpu:true nodes. Those are real operational facts an agent could not infer, though the kernel/compute details largely duplicate the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the name but then spends most of its length on generic platform boilerplate (compute binding, Cloudflare Workers, gpu flags) plus a raw FV-status hash URL. The domain-relevant content is a single phrase, so the text is over-sized relative to what it conveys.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 100% schema coverage, annotations, and an output schema, the structured fields carry most of the load, and retention/provenance is well covered. What is missing is the tool-specific substance: which X12 837/835 lint rules apply and any severity/error semantics, which for a lint tool is the core contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute enum is already fully documented in the schema; the description's compute explanation is redundant with it. Nothing is added about parent_hashes/parent_tool_ids or what keys belong in policy_parameters. Baseline 3 for a fully documented schema is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause identify the resource and operation ("X12 837/835 Healthcare-Claim Records Lint"), which is a real verb+resource. But nothing states what the lint actually checks or returns, and there is no differentiation from sibling lint tools such as lint_metro2_record or lint_mismo_uldd_ulad. The purpose is identifiable but shallow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the compute-mode mechanics in detail but never says when an agent should call this tool versus any alternative, nor what inputs are expected beyond "synthetic or anonymised". No prerequisites, no exclusions, no routing to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_x402_v2_migrationx402 v2 Wire-Format Migration LinterB
Read-onlyIdempotent
Inspect

x402 v2 Wire-Format Migration Linter: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-26-x402-payload-decoder-flow-simulator. Output feeds: art-61-x402-batch-settlement-reconciler, art-394-x402-deferred-handshake-validator. Open at: https://ainumbers.co/chaingraph/art-393-x402-v2-migration-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
errorsNo
passesNo
findingsNo
warningsNo
spec_noteNo
protocol_versionNo
v2_headers_foundNo
inferred_wire_versionNo
deprecated_headers_foundNo
declared_protocol_versionNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, yet the description still adds real behavioral facts: server-side vs browser compute delegation, that gpu:true nodes always delegate, that inputs are processed transiently and never stored or logged, a synthetic-data requirement, and that an AP2 artifact with execution_hash is exported for chain provenance. It stops short of describing what happens on a failed lint or any rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Wait — the sentences are well-formed and the platform/retention facts appear early, but the description is padded with artifact IDs, a URL, and an FV-status receipt hash whose value to tool selection is marginal. It is front-loaded acceptably but not tight; several sentences describe the platform rather than this tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but the core question an agent needs answered — what wire-format migration rules are being linted and what constitutes a pass/fail — is absent entirely. Combined with a fully generic policy_parameters object (no required fields, no field names), the description is not complete enough to call the tool with confidence despite heavy platform detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes, parent_tool_ids, and policy_parameters fields are already documented in the schema. The description restates the compute-mode behavior and clarifies the chaining intent, but adds no semantics beyond the schema, and it explicitly defers policy_parameters field names to 'the tool's manifest,' which leaves the only open-ended parameter opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title carry the verb+resource ('lint x402 v2 migration'), but the description body never elaborates on what the linter actually checks — no v2 wire-format rules, no migration aspects, no failure conditions. Roughly a third of the description is platform plumbing (compute modes, kernel delegation) rather than task purpose, and nothing distinguishes it from the many x402 siblings such as reconcile_x402_batch_settlement, decode_x402_payment, or check_x402_domain_nonce_window.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied via pipeline positioning: it consumes artifacts from the payload-decoder simulator and feeds the batch-settlement reconciler and deferred-handshake validator. There is no explicit 'use this when…' statement, no conditions that select it over the other x402 tools, and no note on prerequisites beyond 'synthetic or anonymised inputs only'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_ainumbers_toolsList AINumbers toolsA
Read-onlyIdempotent
Inspect

Search the AINumbers catalog (480+ client-side fintech tools). Returns deep-links; prefill-enabled tools accept #in=<base64url(JSON of {element_id: value})>[&run=1] for one-click invocation.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows to return. Default 20.
queryNoFree-text search over tool name and description. Omit to list without filtering.
categoryNoRestrict results to one catalog category (e.g. "mortgage", "kyc"). Omit for all categories.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond annotations, such as returning deep-links and the prefill-enabled parameter syntax. It aligns with the readOnly, idempotent, and non-destructive annotations, providing a transparent view without contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct, consisting of two clear sentences. The first establishes the core function, and the second explains the return and special feature, with no redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the primary purpose, return type (deep-links), and a notable feature (prefill invocation). It does not detail the full output structure or parameter behaviors, but given the simple listing nature and existing schema, it is sufficiently complete for context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool description does not elaborate on the parameters beyond the schema descriptions. Since the schema already covers all three parameters with concise descriptions, the tool description adds no extra meaning, staying at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: searching the AINumbers catalog of 480+ client-side fintech tools. It also mentions returning deep-links and the prefill capability, leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching the catalog, but does not explicitly contrast with alternative tools or state conditions for when to prefer this over others. However, the intent is clear from the name and description, so it is mostly adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_mletr_jurisdiction_adoptionMLETR Jurisdiction-Adoption LookupC
Read-onlyIdempotent
Inspect

MLETR Jurisdiction-Adoption Lookup: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-354-mletr-jurisdiction-adoption-lookup.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
corridorNo
data_versionNo
table_sourceNo
disambiguationNo
ebl_legally_effectiveNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description goes well beyond them: compute:"auto" vs "browser" semantics, browser delegation for gpu:true nodes, transient processing with no storage/logging, and an exported AP2 artifact carrying execution_hash for provenance. That is meaningful behavioral context an agent would not get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with boilerplate that does not help selection: the 'Deterministic OpenChainGraph compute node' phrase is repeated, and a URL plus a 64-hex FV-status snapshot path consume space without aiding invocation. The domain purpose is never front-loaded or stated at all.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description does cover execution/privacy/provenance adequately for a compute node. However, for a domain tool named around MLETR jurisdiction adoption, it supplies nothing about jurisdictions, mandates, or decision scope, leaving the core competence opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation largely duplicates the schema's own enum description, and it defers field names to 'the tool's manifest', adding little beyond the structured data. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mostly restates the name/title ('MLETR Jurisdiction-Adoption Lookup: OpenChainGraph compute node') and then pivots to compute plumbing. It never actually says what is looked up (adoption status of the MLETR per jurisdiction?) or what a caller learns from it, so the agent must infer the purpose from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only real guidance is 'Use synthetic or anonymised inputs only', which is about input hygiene, not tool selection. No when-to-use, no distinction from related siblings such as validate_mletr_record, run_digital_trade_fit, or check_digital_trade_rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_reg_z_thresholdsReg Z Threshold LookupC
Read-onlyIdempotent
Inspect

Reg Z Threshold Lookup: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-220-reg-z-threshold-lookup.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
noteNo
yearNo
tableNo
available_yearsNo
regulatory_basisNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, but the description adds genuinely useful context beyond them: compute:'auto' vs 'browser' execution routing, browser delegation URLs, gpu:true always delegating, transient non-stored processing, and an AP2 artifact with execution_hash for provenance. This is real behavioral disclosure, though it is generic to the whole node family rather than this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense block of platform boilerplate, a URL, and a long FV-status receipt hash, with the actual function of the tool never stated. Sentences about offline verification and snapshot semantics do not help an agent decide or invoke correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, but the core gap remains: what this tool computes and what to pass in policy_parameters is left to an external manifest for a 4-parameter tool with a nested object. The environment is fully described while the domain purpose is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode prose duplicates what the schema field description already says and adds nothing about what policy_parameters fields should contain beyond pointing at 'the tool's manifest.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the title and labels the tool an 'OpenChainGraph compute node (compliance_mandate)' but never states what Reg Z thresholds are looked up or what the decision function computes. It is essentially the name restated with infrastructure boilerplate, and it does not distinguish this tool from the many other compliance compute nodes among its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives like compute_reg_z_appendix_j_apr or test_hoepa_high_cost. The only actionable guidance is 'Use synthetic or anonymised inputs only,' which is an input constraint rather than usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_agent_payment_mandateAgent Payment Mandate Cross-Protocol MapperC
Read-onlyIdempotent
Inspect

Agent Payment Mandate Cross-Protocol Mapper: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-476-map-agent-payment-mandate.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
mapping_okNo
canonical_pivotNo
mapping_receiptNo
source_protocolNo
target_protocolNo
protocol_versionsNo
translated_mandateNo
mapping_table_versionNo
missing_required_target_fieldsNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, but the description adds real behavioral context: deterministic execution, server-side vs browser delegation semantics, transient processing with no storage or logging, the requirement to use only synthetic/anonymised inputs, and provenance via execution_hash. That data-handling and determinism detail is valuable and not derivable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core caveats (compute mode, synthetic inputs, provenance) are reasonably front-loaded, but the FV-status URL and the 'snapshot, not a subscription / verifies offline' sentence consume space without helping an agent select or invoke the tool. Several sentences are boilerplate shared across the Chaingraph family.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compliance mapping node with an output schema and rich siblings, the description is thorough on infrastructure but silent on the actual mapping semantics and on what policy_parameters must contain ('See the tool's manifest' pushes the core input off-description). An agent still cannot tell what this tool computes or when it applies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes, parent_tool_ids and policy_parameters fields are already documented. The description's compute-mode text largely mirrors the schema and adds no syntax or constraint detail beyond it, so baseline 3 applies; policy_parameters contents remain undefined in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('Agent Payment Mandate Cross-Protocol Mapper: OpenChainGraph compute node') and never states what the mapping actually does — which protocols are mapped, in which direction, or what the output represents. Siblings like compare_agentic_payment_protocols and crosswalk_agent_payment_rail_trust are not distinguished. The only functional hint ('Exports an AP2 artifact with execution_hash') is incidental boilerplate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The compute "auto"/"browser" discussion is a mode-selection detail already covered in the schema, not task-level routing. Nothing tells an agent when this mapper is the right call versus building or validating an AP2 mandate with the many sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_ai_act_procurement_clausesAI Act Procurement Clause MapperA
Read-onlyIdempotent
Inspect

AI Act Procurement Clause Mapper: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-64-ai-act-highrisk-fit-diagnostic. Output feeds: art-411-ai-addendum-assembler. Open at: https://ainumbers.co/chaingraph/art-412-ai-act-procurement-clause-mapper.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
templateNo
risk_tierNo
disclaimerNo
license_modeNo
variable_mapNo
not_legal_adviceNo
official_source_urlNo
applicable_chapter_iii_clausesNo

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint, idempotentHint, non-destructive, and closed-world behavior. The description adds substantial behavioral context beyond those annotations: compute auto/server/browser semantics, browser delegation URL behavior, gpu:true delegation, transient non-storage of inputs, synthetic/anonymised input requirement, and AP2 artifact export with execution_hash for provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with OpenChainGraph infrastructure boilerplate, repeated compute-binding details already present in the schema, a URL, and a FV-status receipt hash. It is not front-loaded around the actual clause-mapping purpose and includes material unlikely to help an agent invoke the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex compliance compute node with annotations and an output schema, the description supplies useful chain position, compute behavior, and data-handling context. It remains incomplete about the actual AI Act procurement clause mapping semantics and what policy_parameters should contain, leaving an agent dependent on external manifests for core invocation details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description repeats compute-mode behavior and mentions provenance chaining, but it does not add meaningful parameter semantics beyond what is already in the schema, notably leaving policy_parameters field names to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title clearly identify an AI Act procurement clause mapping function, and the description adds that it is an OpenChainGraph compute node with defined upstream and downstream artifacts. It is distinguishable from most siblings by domain, but it does not explicitly differentiate itself from other AI Act compliance tools or explain what the mapping operation actually produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies pipeline usage by naming the upstream artifact it consumes (art-64-ai-act-highrisk-fit-diagnostic) and the downstream artifact it feeds (art-411-ai-addendum-assembler). However, it gives no explicit when-to-use guidance, no when-not-to-use guidance, and no alternative tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_bhc_schedule_hcFR Y-9C Schedule HC (Consolidated Balance Sheet) MapperB
Read-onlyIdempotent
Inspect

FR Y-9C Schedule HC (Consolidated Balance Sheet) Mapper: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-436-bhc-schedule-hcr-capital. Open at: https://ainumbers.co/chaingraph/art-435-bhc-schedule-hc-balance-sheet.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
assetsNo
equityNo
scheduleNo
entity_idNo
liabilitiesNo
report_formNo
boundary_noteNo
taxonomy_noteNo
reporting_periodNo
total_assets_usdNo
identity_balancedNo
total_assets_mdrmNo
identity_delta_usdNo
total_liabilities_usdNo
rounding_tolerance_usdNo
total_liabilities_mdrmNo
total_equity_capital_usdNo
total_equity_capital_mdrmNo
total_liabilities_and_equity_usdNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive), but the description adds substantive context beyond them: the auto/server/browser compute semantics, transient processing with no storage/logging/retention, the AP2 artifact with execution_hash for provenance, and the offline-verifiable FV-status snapshot. It also advises synthetic/anonymised inputs. Only the absence of any mention of latency/quota caveats keeps this from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Key facts (regulatory schedule, compute modes, no retention) are reasonably front-loaded, but the text is a dense run-on mixing title restatement, compute mechanics, provenance, a landing-page URL, and a receipt path. 'Deterministic OpenChainGraph compute node' duplicates the following sentence and could be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers compute semantics, data-handling guarantees, provenance chaining, and a verification artifact. It is complete enough to invoke safely, though it never describes the semantic content of the Schedule HC mapping itself, which is arguably the tool's core purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are documented there, so the description's restatement of compute modes is redundant. It does not clarify the ordering contract for parent_hashes/parent_tool_ids or the shape of policy_parameters beyond what the schema says, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name identify the resource precisely (FR Y-9C Schedule HC consolidated balance sheet) and the action ('Mapper'), and the description names a downstream artifact (art-436-bhc-schedule-hcr-capital). However, it never explains what the mapping actually does or how it differs from the near-identical sibling map_bhc_schedule_hcr, so an agent must open the schema to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no prerequisites, and no named alternatives despite several sibling mappers (map_bhc_schedule_hcr, map_call_report_schedule_rc, map_call_report_schedule_rcr). The only routing signal is 'Output feeds: art-436-bhc-schedule-hcr-capital', which implies a chain position but not a selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_bhc_schedule_hcrFR Y-9C Schedule HC-R (Regulatory Capital) CalculatorB
Read-onlyIdempotent
Inspect

FR Y-9C Schedule HC-R (Regulatory Capital) Calculator: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-435-bhc-schedule-hc-balance-sheet. Open at: https://ainumbers.co/chaingraph/art-436-bhc-schedule-hcr-capital.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eslrNo
ratiosNo
is_gsibNo
scheduleNo
entity_idNo
report_formNo
boundary_noteNo
taxonomy_noteNo
total_rwa_usdNo
cet1_capital_usdNo
reporting_periodNo
constants_versionNo
tier1_capital_usdNo
tier2_capital_usdNo
total_capital_usdNo
total_leverage_exposure_usdNo
additional_tier1_capital_usdNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive safety, but the description adds genuinely useful context beyond them: transient processing with no storage or logging, synthetic-input-only expectation, AP2 artifact export with execution_hash for provenance, compute delegation semantics for gpu:true nodes, and the required upstream artifact (art-435-bhc-schedule-hc-balance-sheet).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is bloated with framework boilerplate and a very long FV-status receipt URL plus hash, which is unlikely to help an agent decide or invoke the tool. Several sentences repeat the same provenance/compute themes and would be better trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers compute modes, chaining, data handling, and upstream dependencies. The gap is that it never describes what the HC-R capital computation actually produces or its determinants, leaving the substantive decision-function semantics to an out-of-band manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description reinforces compute semantics and chaining but defers policy_parameters field names to an external manifest, adding little beyond the structured data — the baseline 3 for full coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line state a specific verb+resource: computing FR Y-9C Schedule HC-R regulatory capital, distinguished from the sibling map_bhc_schedule_hc (balance sheet). However, the body is dominated by OpenChainGraph infrastructure boilerplate, so an agent gets the domain purpose from the first clause and then mostly framework detail rather than a sharpened statement of the tool's distinct function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this calculator versus alternatives such as map_bhc_schedule_hc or other capital-mapping siblings. The only conditional text concerns compute mode (auto/server/browser), which is execution plumbing, not tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_call_report_schedule_rcCall Report Schedule RC (Balance Sheet) MapperC
Read-onlyIdempotent
Inspect

Call Report Schedule RC (Balance Sheet) Mapper: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-434-call-report-edit-check-gate. Open at: https://ainumbers.co/chaingraph/art-432-call-report-rc-balance-sheet.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
assetsNo
equityNo
scheduleNo
entity_idNo
liabilitiesNo
report_formNo
boundary_noteNo
reporting_periodNo
total_assets_usdNo
identity_balancedNo
total_assets_mdrmNo
identity_delta_usdNo
total_liabilities_usdNo
xbrl_json_annex1_noteNo
rounding_tolerance_usdNo
total_liabilities_mdrmNo
total_equity_capital_usdNo
total_equity_capital_mdrmNo
total_liabilities_and_equity_usdNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely useful behavioral facts beyond that: deterministic execution, server-vs-browser delegation semantics for gpu nodes, transient processing with no retention/logging, and an AP2 export carrying execution_hash for provenance. Point off because the compute-mode explanation largely duplicates the schema's own compute parameter description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense wall of boilerplate: compute-mode rules (duplicated in the schema), privacy/retention boilerplate, a raw documentation URL, and a long FV-status receipt hash. It is front-loaded with the name but then buries any useful signal; several sentences do not earn their place for the agent's decision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a compute node whose policy_parameters are undefined, the description should at least characterize what regulatory mapping is performed and which inputs matter. Instead it spends its budget on generic compute-node and provenance boilerplate, leaving the tool's core semantics and its differentiation from sibling mappers unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; the baseline is 3 and the description adds nothing beyond it. Notably, the schema defers policy_parameters field names to 'the tool's manifest,' and the description does not compensate for that gap, leaving the actual decision inputs opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name plus title state a recognizable verb+resource (map inputs into Call Report Schedule RC, the balance sheet schedule), and the description names the downstream artifact (art-434-call-report-edit-check-gate). However, the body never explains what the mapping actually does or what distinguishes it from map_call_report_schedule_rcr; it mostly restates the name and then adds infrastructure boilerplate. Purpose is inferable from the name, not from the description text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or sibling routing guidance. The closest thing is the blanket caution 'Use synthetic or anonymised inputs only,' which is a data-handling constraint rather than selection guidance. An agent cannot tell from this text whether to reach for this tool or map_call_report_schedule_rcr / run_call_report_edit_checks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_call_report_schedule_rcrCall Report Schedule RC-R (Regulatory Capital) MapperC
Read-onlyIdempotent
Inspect

Call Report Schedule RC-R (Regulatory Capital) Mapper: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-434-call-report-edit-check-gate. Open at: https://ainumbers.co/chaingraph/art-433-call-report-rcr-capital.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eslrNo
ratiosNo
is_gsibNo
scheduleNo
entity_idNo
mdrm_noteNo
report_formNo
boundary_noteNo
total_rwa_usdNo
cet1_capital_usdNo
reporting_periodNo
constants_versionNo
tier1_capital_usdNo
tier2_capital_usdNo
total_capital_usdNo
total_leverage_exposure_usdNo
additional_tier1_capital_usdNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (readOnly/idempotent/non-destructive), and the description adds real behavioral context beyond them: transient no-store/no-log processing, browser delegation for gpu:true nodes, AP2 export with execution_hash provenance, and a snapshot FV-status receipt. Some of this repeats the compute parameter's own schema text, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense run-on dominated by platform metadata (compute binding, Worker kernels, transient processing, artifact hashing, FV-status URL). The single sentence of genuine routing value is buried, and the purpose is never front-loaded beyond the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present it need not describe return values, but for a domain-specific capital mapping node it says nothing about what policy_parameters should contain or what the RC-R mapping computes, forcing the agent to consult an external manifest. The generic platform text does not compensate for this domain gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; baseline 3. The description adds no field-level meaning and explicitly defers policy_parameters semantics to 'the tool's manifest for field names', which is a deferral rather than added semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause name a specific verb+resource (map Call Report Schedule RC-R, Regulatory Capital), so an agent can roughly place it. But the body never explains what the mapping actually produces or how it differs from the sibling map_call_report_schedule_rc, and most of the text is platform boilerplate rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage signal is 'Output feeds: art-434-call-report-edit-check-gate', which implies chain placement but not when to choose this over alternatives. There is no when-to-use, when-not-to-use, or sibling differentiation (e.g. vs map_call_report_schedule_rc).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_irrbb_standardised_approachIRRBB Standardised Approach MapperC
Read-onlyIdempotent
Inspect

IRRBB Standardised Approach Mapper: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-187-irrbb-csrbb-scope-checker. Open at: https://ainumbers.co/chaingraph/art-186-irrbb-standardised-approach-mapper.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
core_cappedNo
deposit_categoryNo
maturity_cap_yearsNo
core_deposit_pct_inputNo
core_deposit_pct_appliedNo
behavioural_mortgage_prepay_pctNo
behavioural_option_addon_requiredNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already covering read-only, idempotent, and non-destructive behavior, the description adds substantial context: deterministic execution, server-side vs browser delegation, transient processing with no storage/logging, synthetic input requirement, and export of an AP2 artifact with execution_hash. This goes well beyond the annotations, though it omits auth or rate-limit details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated and repetitive, starting with the title, then 'OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.' It buries the functional purpose under infrastructure, privacy, and provenance metadata, and is not front-loaded with what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema and full parameter coverage, the description fails to explain the actual computation or mapping logic, which is essential for an agent to know when and how to use this tool. It covers execution environment and data handling but leaves the core functional gap unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning by clarifying that policy_parameters are computed server-side for gpu:false nodes with a registered kernel and that field names are in the manifest, which complements the schema’s generic object description. It also reiterates compute mode semantics usefully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the tool as a 'IRRBB Standardised Approach Mapper' and states it is an OpenChainGraph compute node, but it never explains what mapping it performs or what the output represents beyond feeding a specific sibling. It does not differentiate from other IRRBB tools like check_irrbb_csrbb_scope or calculate_irrbb_eve_shocks. The core purpose remains vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no alternatives named, and no conditions for selecting this tool over its many IRRBB siblings. It only says to use synthetic or anonymised inputs and describes compute modes, which are execution details rather than usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_iso20022_to_evm_calldataISO 20022-to-EVM Calldata MapperB
Read-onlyIdempotent
Inspect

ISO 20022-to-EVM Calldata Mapper: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-291-screen-onledger-transfer-batch. Open at: https://ainumbers.co/chaingraph/art-288-map-iso20022-to-evm-calldata.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
warningsNo
mapping_okNo
draft_pinnedNo
resolved_callNo
field_bindingsNo
mapping_profileNo
iso_message_typeNo
abi_type_coercionsNo
mapping_profile_versionNo
unmapped_required_fieldsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description goes further by disclosing that inputs are processed transiently and not stored or logged, that only synthetic/anonymised inputs should be used, and that the tool exports an AP2 artifact with execution_hash for chain provenance. That is meaningful behavioral context beyond the annotations, though it omits error/failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence repeats the title, and the trailing FV-status URL plus 64-hex hash is heavy metadata that crowds out task-relevant content. The privacy and compute sentences are useful and reasonably front-loaded, but the whole is denser than the operational payload warrants.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and provenance/downstream chaining is covered. However, for a mapping tool with a free-form policy_parameters object and an open 'see the manifest' pointer, the description leaves the core input semantics unresolved, which is a real gap given the nested-object complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enumerate of compute modes and the parent_hashes/parent_tool_ids pairing is already documented in the schema. The description's compute-mode recital duplicates the schema rather than extending it, and policy_parameters field names are deferred to 'the tool's manifest' instead of being described. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title ('ISO 20022-to-EVM Calldata Mapper') conveys the verb+resource pairing, but the description itself largely restates that title and then pivots to compute-node mechanics rather than explaining what the mapping produces. It never states which ISO 20022 message families are accepted or what the resulting EVM calldata targets. An agent can guess the purpose but gets no elaboration from the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no comparison to any sibling tool, despite dozens of similar 'map_*' and 'validate_*' ISO 20022 tools in the list. The only routing hint is the downstream note 'Output feeds: art-291-screen-onledger-transfer-batch,' which describes consumption, not selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_mt9xx_to_camtSwift MT9xx to camt Statement Migration MapperC
Read-onlyIdempotent
Inspect

Swift MT9xx to camt Statement Migration Mapper: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-563-mt9xx-camt-statement-migration-mapper.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
targetNo
mappingNo
mt_typeNo
verdictNo
pii_noteNo
statementNo
account_idNo
message_idNo
notificationNo
default_targetNo
disambiguationNo
fidelity_reportNo
rejected_inputsNo
coexistence_noteNo
mt_type_conflictNo
camt_message_rootNo
target_overriddenNo
no_swift_endorsementNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, and non-destructive behavior, lowering the burden. The description usefully adds the transient/no-logging data-handling policy, the compute-mode delegation behavior, and that it exports an AP2 artifact with execution_hash. However, it discloses nothing about the actual mapping semantics (e.g., which MT9xx types are supported, field-level behavior), so it is only moderately informative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dominated by platform boilerplate, a raw FV-status hash, and a documentation URL, none of which help an agent decide to call the tool. The one sentence of genuine tool purpose is just a repeat of the title, so the text is both bloated and under-informative about its core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists (so return values need not be explained), the description omits any domain-level explanation of what the MT9xx→camt mapping entails for a nested policy_parameters object. For a complex, open-ended decision function, the description is not complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with 4 well-documented parameters, so the baseline is 3. The description paraphrases compute mode but adds no field-name or format detail beyond the schema, and defers policy_parameters contents to 'the tool's manifest,' which the schema also states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('Swift MT9xx to camt Statement Migration Mapper') and then spends the rest on infrastructure boilerplate. It never states what the mapping actually does, what an MT9xx input produces, or what distinguishes it from siblings like score_mt_mx_translation_fidelity or camt053_parse. This is essentially a tautology of the name plus generic platform text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance relative to the many sibling migration/translation tools. The only usage-relevant content is the compute mode mechanics, which concerns execution placement rather than tool selection. An agent must guess whether this tool applies to its MT9xx-to-camt scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_nist_ai_rmf_functionsNIST AI RMF Function MapperC
Read-onlyIdempotent
Inspect

NIST AI RMF Function Mapper: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-175-gpai-code-of-practice-conformance, art-314-traiga-safe-harbor-pack-builder. Open at: https://ainumbers.co/chaingraph/art-174-nist-ai-rmf-function-mapper.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
all_gapsNo
coverage_bandNo
total_controlsNo
controls_presentNo
overall_coverageNo
function_coverageNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/destructive/openWorld, and the description adds meaningful context beyond them: transient non-retention of inputs, a directive to use synthetic data only, server-vs-browser delegation behavior, and production of an AP2 artifact with execution_hash. These are real behavioral disclosures, though much reads as platform boilerplate rather than tool-specific behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the name but then spends most of its length on compute-binding mechanics, a URL, and an FV-status hash path whose relevance to invocation is marginal. Dense and not fully waste-free.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be explained, and zero params are required. But for a compliance-mapping tool the description never explains what got mapped or what policy_parameters should contain ('see the tool's manifest'), leaving the substantive semantics undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode prose largely duplicates the schema's enum description and adds nothing on chaining or policy_parameters fields. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the tool name and labeling it a generic 'OpenChainGraph compute node (compliance_mandate)' rather than stating the mapping action. It never says what NIST AI RMF functions it maps or to what. An agent learns more about the platform's compute routing than about the tool's actual purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names downstream consumers ('Output feeds: art-175..., art-314...') but gives no when-to-use guidance versus siblings like assess_ai_act_conformity or check_gpai_code_conformance, no prerequisites, and no exclusions. Downstream routing is not the same as invocation guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_nmd_behavioral_repricingNMD Behavioral Repricing MapperC
Read-onlyIdempotent
Inspect

NMD Behavioral Repricing Mapper: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-442-nmd-behavioral-repricing-mapper.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
conventionNo
buckets_usedNo
total_balanceNo
segment_resultsNo
net_repricing_gapNo
weighted_avg_betaNo
total_net_repricing_gapNo
total_rate_sensitive_balanceNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds meaningful non-obvious behavior: deterministic execution, server- vs browser-side compute semantics, gpu:true always delegating, transient non-retained inputs, and export of an AP2 artifact carrying execution_hash for chain provenance. It stops short of describing failure modes or latency/auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Roughly 150 words, front-loaded with a title restatement rather than the actual purpose. The compute/transient/AP2 sentences earn their place, but the FV-status receipt paragraph is verbose infrastructure metadata that buries the payload.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations are rich, so return values need not be explained. But for a compute tool whose substantive input is policy_parameters, telling the agent to "see the tool's manifest for field names" leaves the most important input undocumented anywhere the agent can read.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description only echoes the compute-mode semantics and otherwise defers policy_parameters field names to an external manifest, adding no meaning beyond the structured schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"NMD Behavioral Repricing Mapper" restates the tool name, and the only added descriptor is the generic category "OpenChainGraph compute node (analytics_mandate)." Nothing explains what NMD behavioral repricing actually computes (deposit repricing betas, decay, non-maturity deposit modeling) or how it differs from the many sibling recompute_*/compute_* nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does specify compute-mode selection (auto/server/browser) and a data-handling constraint ("use synthetic or anonymised inputs only"), which is real usage guidance. However it gives no when-to-use vs. alternative conditions and names no sibling tool to route against, so selection among ~500 tools is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_pil_flavorStory PIL Flavor MapperC
Read-onlyIdempotent
Inspect

Story PIL Flavor Mapper: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-197-pil-flavor-mapper.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
docsNo
flavorNo
pil_termsNo
disclaimerNo
flavor_labelNo
license_terms_idNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive/closed-world), the description adds real behavioral context: inputs are processed transiently and not stored, logged, or retained; compute:'browser' returns a delegation URL rather than a result; gpu:true always delegates; and the output is an AP2 artifact carrying an execution_hash. It also clarifies that the FV-status URL is a snapshot, not a subscription — useful for reasoning about offline verification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with the tool identity, but the text is dense and repetitive ('compute node' stated twice), and the trailing long URL plus FV-status receipt paragraph consume significant space without helping tool selection or invocation. The core behavioral facts are buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute modes are covered. However, for a tool whose only substantive input surface is a free-form policy_parameters object, the description defers the field names to 'the tool's manifest', leaving the agent unable to know what inputs to supply. Adequate on mechanics, incomplete on the actual operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation largely duplicates the schema's enum documentation and adds no syntax or field-level detail for policy_parameters. Baseline 3 is appropriate when the schema carries the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explains the OpenChainGraph compute-node machinery (deterministic, AP2 artifact export, execution_hash) but never says what a 'PIL flavor' is or what the decision function actually computes. The opening two clauses are near-duplicate boilerplate ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') that could be pasted onto any of the hundreds of sibling chain-graph nodes, so an agent cannot distinguish this tool's purpose from its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one useful constraint ('Use synthetic or anonymised inputs only') and explains compute-mode selection, but offers no when-to-use vs alternative, no workflow position, and no criteria for choosing this mapper over the many other compliance-mandate nodes. There is no routing guidance for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_robinhood_chain_regimeFinancial-Instrument Regime MapperC
Read-onlyIdempotent
Inspect

Financial-Instrument Regime Mapper: OpenChainGraph compute node (crypto_regulatory_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-318-rhc-regime-mapper.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
assumptionsNo
regime_treeNo
issuer_entityNo
prospectus_exposureNo
mica_carveout_appliesNo
us_persons_gate_violatedNo
disclose_no_voting_rightsNo
mifid2_transferable_securityNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/non-destructive, but the description adds genuinely extra behavior: transient processing with no storage, logging, or retention; deterministic server-side vs browser delegation semantics; and export of an AP2 artifact carrying an execution_hash for provenance. That said, the compute-mode rules largely duplicate the schema, and nothing tool-specific about the decision function is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is padded with repeated boilerplate ("OpenChainGraph compute node" stated twice), a raw URL, and a long trailing FV-status hash sentence that no agent needs to select or invoke the tool. The informative content (transient input handling, AP2 export) is buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a node whose real input lives in an unrestricted policy_parameters object, the description should explain the decision function and what that object carries; instead it explains only transport concerns. Output schema exists, so return values needn't be covered, but the functional gap leaves an agent unable to know what this computes or what to pass.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, and the description adds no syntax or format detail beyond it. Critically, policy_parameters — the actual decision input — is left opaque ("See the tool's manifest for field names"), which the description does nothing to remedy. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ("Financial-Instrument Regime Mapper") and then spends the rest on OpenChainGraph compute plumbing; it never says what a "regime" is, what instrument data is mapped, or what the node actually computes. An agent cannot distinguish this from siblings like run_robinhood_chain_fit_diagnostic or classify_digital_asset_regulatory based on the text. This is close to tautology plus generic infrastructure boilerplate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions selecting this over sibling classifiers, and no stated prerequisites. The only actionable instruction is "Use synthetic or anonymised inputs only," which constrains inputs rather than routing the agent to this tool. Usage is implied at best.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

map_tempo_settlementTempo Agentic Checkout Settlement MapperB
Read-onlyIdempotent
Inspect

Tempo Agentic Checkout Settlement Mapper: OpenChainGraph compute node (settlement_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-34-tempo-fit-diagnostic, art-36-tempo-mpp-agent-mandate. Open at: https://ainumbers.co/chaingraph/art-40-tempo-agentic-checkout.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
memoNo
protocolNo
truncatedNo
tip20_transferNo
iso20022_pacs008No
protocol_bindingNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses meaningful behavior: server-side execution on Cloudflare Workers for gpu:false nodes, browser delegation URLs, that gpu:true nodes always delegate, and crucially that inputs are processed transiently and not stored/logged/retained (use synthetic inputs only). This is real behavioral context that the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded, but the description is dense with boilerplate jargon (FV-status, a 64-char receipt hash, and a raw URL) that dilutes the operative content. The compute-mode and data-handling sentences earn their place; the provenance-receipt sentence is largely noise for a caller.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required. The description covers upstream consumption and export shape, but for a settlement-mapping compute node with an opaque free-form policy_parameters input it never explains what decision function is being applied, leaving the core semantics thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including compute, parent_hashes, and parent_tool_ids. The description adds no parameter-level detail beyond what the schema provides; the opaque policy_parameters object is deferred to 'the manifest' in the schema itself, not clarified here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a 'Tempo Agentic Checkout Settlement Mapper' compute node (settlement_mandate) and states it exports an AP2 artifact with an execution_hash. However, it never clearly says what the mapping/settlement transformation actually computes, so the verb+resource is more implied than specified. It does not distinguish itself from the many adjacent tempo/settlement siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance or alternatives are given. It does explain the compute-mode selection (auto/server/browser) and names the upstream artifacts it consumes, which is a form of context, but there is no routing against siblings like run_tempo_fit_diagnostic, model_tempo_payment_economics, or validate_tempo_token_compliance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

match_confirmationsBank/AR Confirmation MatcherC
Read-onlyIdempotent
Inspect

Bank/AR Confirmation Matcher: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-464-confirmation-matcher.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchedNo
unmatchedNo
exact_countNo
matched_countNo
tolerance_usedNo
tolerance_countNo
unmatched_countNo
total_confirmationsNo
duplicate_ledger_keysNo
total_ledger_balancesNo
duplicate_confirmation_keysNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds meaningful behavior beyond that: inputs are processed transiently and not stored/logged, GPU nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for chain provenance. These are substantive disclosure items an agent cannot derive from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with infrastructure boilerplate (repeated 'OpenChainGraph compute node', a documentation URL, and a long FV-status receipt hash) that does not help selection or invocation. The one genuinely useful constraint (synthetic inputs only) and the API behavior (AP2 artifact) are buried behind meta-commentary, and the functional purpose is never front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described, and the description does cover compute-mode behavior, data retention, and provenance export. However, for a compliance compute node the core decision function is left to the name and the tool manifest, which is a meaningful gap given the complexity and the fully documented parameter schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the compute enum, parent_hashes, parent_tool_ids and policy_parameters. The description largely repeats the compute-mode semantics already in the schema and says nothing new about the chaining parameters, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Bank/AR Confirmation Matcher') and identifies the tool as an OpenChainGraph compute node for compliance_control, but never states what the matching actually does or what inputs produce what verdict. The agent can infer a 'match confirmations' verb+resource from the name alone, so the description adds little functional specificity and names no sibling for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a data-handling constraint ('Use synthetic or anonymised inputs only') and an explanation of the compute mode default, but no guidance on when to choose this tool over any of the many reconciliation/matching siblings (e.g. recon_match, reconcile_emir_pairing). Selection reasoning is entirely absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mobilize_margin_collateralMargin Call Collateral MobilizerB
Read-onlyIdempotent
Inspect

Margin Call Collateral Mobilizer: OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 505-tokenized-collateral-eligibility-checker. Output feeds: 506-onchain-cash-leg-finality-checker. Open at: https://ainumbers.co/tools/513-margin-call-collateral-mobilizer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapYes
im_callYes
vm_callYes
shortfallYes
total_requiredYes
collateral_detailYes
total_mobilizableYes

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses meaningful runtime behavior: server-side vs browser delegation, transient processing with no storage/logging, and export of an AP2 artifact with execution_hash for provenance. These are substantive operational disclosures the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense run-on template dump that repeats the compute-mode explanation the schema already gives and stacks boilerplate clauses (FV-status, export, chain position). It is under-edited, with redundancy rather than front-loaded clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present it needn't explain return values, and it covers compute modes, data hygiene, and chain wiring adequately. But the core computational semantics are missing and policy_parameters fields are deferred to an external manifest, leaving the agent without the information needed to supply meaningful inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; the description mostly restates the compute-mode semantics already in the schema. It adds nothing for the nested policy_parameters object, which it defers to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name indicate a 'margin call collateral mobilizer,' and the description situates it as an OpenChainGraph 'collateral_mandate' compute node between tool 505 and 506. However, it never states in plain terms what the decision function actually computes (e.g., which collateral is mobilizeable), leaning on boilerplate rather than a specific verb+resource statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a real usage constraint ('Use synthetic or anonymised inputs only') and explains which compute mode to pick, but offers no guidance on when to choose this tool over siblings like check_tokenized_collateral_eligibility or validate_collateral_swap_eligibility.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_agent_service_meteringAgent-Service Metering & Marketplace Economics ModelerB
Read-onlyIdempotent
Inspect

Agent-Service Metering & Marketplace Economics Modeler: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-60-agent-economy-runtime-fit-diagnostic. Output feeds: art-03-x402-settlement-modeler, ml-03-timeseries-anomaly-detector. Open at: https://ainumbers.co/chaingraph/art-63-agent-service-metering-modeler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
railNo
batchNo
modelNo
currencyNo
batch_sizeNo
sensitivityNo
status_asofNo
net_margin_dayNo
net_margin_pctNo
unit_price_minorNo
batch_savings_pctNo
gross_revenue_dayNo
take_and_infra_dayNo
breakeven_calls_dayNo
settlement_cost_dayNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/local, so the bar is lower, yet the description adds real behavioral context: transient processing with no storage/logging/retention, a synthetic-inputs-only constraint, deterministic execution, and an exported AP2 artifact carrying execution_hash for provenance. These details go meaningfully beyond the annotations, though pagination/size or error behavior is not covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening repeats itself ('OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node.'), and the dense FV-status receipt sentence reads as boilerplate that dilutes the key operational points. It is front-loaded and mostly informative, but several sentences could be tightened or cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers provenance chaining, compute-mode delegation, data-handling constraints, and artifact flow. For a complex compute node it is largely complete, with the main gap being a plain-language statement of what the model produces.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates compute-mode semantics (largely duplicating the schema) and ties execution_hash to provenance chaining, adding marginal meaning. Baseline 3 is appropriate given the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening state the resource (agent-service metering / marketplace economics) and it is clearly a compute/modeling node, with upstream/downstream artifact IDs that situate it among siblings. However, the description never plainly says what the model actually computes (e.g., pricing, unit economics) beyond the abstract label, so an agent must infer the output from the title rather than the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance relative to the many sibling modeling tools (model_x402_settlement, model_stablecoin_corridor_economics, etc.). The compute-mode behavior and 'use synthetic or anonymised inputs' constraint are stated, but these are execution characteristics rather than selection guidance, leaving the agent to guess when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_arc_cpn_economicsArc CPN Corridor Economics ModelA
Read-onlyIdempotent
Inspect

Arc CPN Corridor Economics Model: OpenChainGraph compute node (treasury_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-42-arc-fit-diagnostic. Open at: https://ainumbers.co/chaingraph/art-43-arc-cpn-model.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
railNo
verdictNo
compliance_flagsNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, but the description still earns credit for disclosing non-obvious behavior: the compute:'auto'/'browser' delegation rules, that gpu:true nodes always delegate, that inputs are processed transiently and not stored or logged, and that the tool exports an AP2 artifact carrying execution_hash. The FV-status note usefully clarifies that the receipt verifies offline. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the name and the runtime semantics, but it opens with a redundant restatement ('Arc CPN Corridor Economics Model: ... Deterministic OpenChainGraph compute node ... Deterministic OpenChainGraph compute node'), and the FV-status URL/paragraph is verbose relative to its informational value. Every remaining sentence is on-topic, just padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not needed, and the description supplies the operational essentials for this class of node: compute mode semantics, privacy handling, provenance export, and the upstream artifact link. What is missing is any indication of the inputs the economics model expects or how to interpret its result, which the explicit pointer to the manifest only partly compensates for.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the enum for 'compute' is already fully documented, so baseline would be 3. The description goes slightly beyond by tying compute modes to the export behavior and by explicitly warning that policy_parameters field names live in the tool's manifest rather than being enumerable here — a genuinely useful caveat about the open-ended nested object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the artifact as a deterministic OpenChainGraph compute node for the Arc CPN corridor economics model, but it never states in plain terms what the model actually computes or what decision function it evaluates. Most of the text is consumed by runtime/execution mechanics rather than purpose, so an agent gets the category but not the specific output. It is distinguishable from siblings only by name, not by function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not guidance, and the many corridor/economics siblings (model_stablecoin_corridor_economics, compare_corridor_cost, model_arc_paymaster_economics) are never named as alternatives. The one useful routing hint is the declared upstream dependency ('Consumes upstream artifacts from: art-42-arc-fit-diagnostic'), which implies this is a downstream step in a chain, but that is context rather than instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_arc_paymaster_economicsArc Paymaster Economics ModelB
Read-onlyIdempotent
Inspect

Arc Paymaster Economics Model: OpenChainGraph compute node (treasury_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-42-arc-fit-diagnostic. Open at: https://ainumbers.co/chaingraph/art-46-arc-paymaster-model.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
compliance_flagsNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description correctly goes further: it discloses determinism, server-vs-browser delegation rules, transient processing with no storage or retention, the synthetic-input requirement, and that it exports an AP2 artifact with execution_hash. These are meaningful behavioral traits not captured by the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the name and node type and every sentence carries information, but 'Deterministic OpenChainGraph compute node' redundantly echoes the title, and the trailing FV-status URL sentence is dense and awkward. Functional, but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema covering return values and annotations covering safety, the description supplies the remaining essentials: compute-mode behavior, data-handling guarantees, upstream chaining, and provenance/verification context. It is nearly complete, missing only what the model computes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description restates the compute-mode semantics rather than adding new parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'Arc Paymaster Economics Model' OpenChainGraph compute node and ties it to a specific artifact (art-46), which distinguishes it from sibling models like model_arc_cpn_economics. However, it never states what the paymaster economics decision function actually computes or returns; the resource is named but the purpose stays at the level of internal chain jargon ('compute node (treasury_mandate)').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real invocation guidance on compute modes (auto/server/browser) and mandates synthetic or anonymised inputs, and notes it consumes upstream artifacts from art-42-arc-fit-diagnostic. What it lacks is any when-to-use versus alternative guidance against the many sibling economics models, so usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_arc_stablefx_rfqArc StableFX RFQ Economics ModelB
Read-onlyIdempotent
Inspect

Arc StableFX RFQ Economics Model: OpenChainGraph compute node (treasury_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-42-arc-fit-diagnostic. Open at: https://ainumbers.co/chaingraph/art-44-arc-stablefx-model.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
compliance_flagsNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine context beyond that: determinism, transient processing with no storage/logging/retention, and that it exports an AP2 artifact with execution_hash for provenance. The compute-mode explanation is largely duplicated from the schema, slightly diluting the value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The name and identity are front-loaded, but the description carries boilerplate that doesn't help an agent invoke the tool: the marketing URL and a verbose FV-status receipt sentence with a long hash. The compute-mode paragraph largely repeats schema content, so several sentences don't fully earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and provenance, data-handling, and the upstream dependency are covered. The critical gap is that the core decision function is left opaque: an agent is told policy_parameters feeds a 'decision function' but not what inputs it expects or what economics it produces, which is the one thing an agent most needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics already documented in the schema and adds nothing about parent_hashes/parent_tool_ids ordering or the opaque policy_parameters field names (the schema itself defers to 'the tool's manifest'). No net meaning is added beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'Arc StableFX RFQ Economics Model' and an OpenChainGraph compute node in the 'treasury_mandate' domain, which distinguishes it from siblings like model_arc_cpn_economics or model_arc_paymaster_economics. However, it never states what the economics model actually computes or what the policy_parameters decision function evaluates, leaning on infrastructure jargon ('compute node') rather than the analytical purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a real usage constraint ('Use synthetic or anonymised inputs only') and a prerequisite ('Consumes upstream artifacts from: art-42-arc-fit-diagnostic'), which is implied guidance. But there is no explicit when-to-use vs. when-not, and no routing to alternative Arc economics models despite several existing as siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_buy_in_exposureBuy-In Exposure ModelerB
Read-onlyIdempotent
Inspect

Buy-In Exposure Modeler: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-78-csdr-penalty-calculator. Output feeds: cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-83-buy-in-exposure-modeler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
referenceNo
status_noteNo
total_failsNo
modeled_failsNo
total_buyin_exposureNo
buyin_triggered_countNo
total_cash_comp_exposureNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real behavior: inputs are processed transiently and never stored or logged, computation is deterministic, gpu:true nodes always delegate to the browser, and it exports an AP2 artifact with execution_hash for provenance. It stops short of describing rate limits or failure modes, but the added context is substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavioral facts are front-loaded, but the text is padded with an FV-status hash, a long URL, and a self-referential note about snapshots and offline verification that do little for tool selection. Several sentences (chain provenance, feeds, open-at link) could be trimmed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations carry the safety profile, so the description needn't explain returns. What is still missing is domain substance: what the buy-in exposure computation produces and what fields policy_parameters accepts. For a chained, nested-object tool, that gap leaves the agent under-informed about the actual modeling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 'compute', 'parent_hashes' and 'parent_tool_ids'. The description restates the compute semantics rather than extending them, and for the central 'policy_parameters' it offers nothing beyond repeating 'See the tool's manifest for field names' — the actual decision inputs stay opaque in both places. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title signal a 'buy-in exposure' modeler, but the description never states what the tool actually computes — it opens with 'OpenChainGraph compute node (compliance_mandate)' and then spends its budget on compute-mode routing and chain plumbing. An agent learns it is a node, not what decision function it performs. The resource is inferable from the name but not articulated in the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains compute-mode selection ('auto' vs 'server' vs 'browser') and notes it consumes upstream artifacts from art-78-csdr-penalty-calculator, which implies when to chain it. But there is no guidance on when to choose this modeler over any sibling exposure/modeling tool, and no exclusions or prerequisites beyond the compute note.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_cbam_certificate_costCBAM Certificate Cost & Free-Allocation EngineA
Read-onlyIdempotent
Inspect

CBAM Certificate Cost & Free-Allocation Engine: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-69-cbam-embedded-emissions-calculator. Output feeds: cry-05-agent-action-audit-trail-aggregator, art-76-climate-scenario-applicator. Open at: https://ainumbers.co/chaingraph/art-71-cbam-certificate-cost-engine.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
referenceNo
cbam_factorNo
cbam_factor_yearNo
net_liability_eurNo
surrender_deadlineNo
cbam_factor_appliedNo
eua_reference_priceNo
origin_price_creditNo
certificates_requiredNo
gross_liability_tco2eNo
certificate_liability_eurNo
quarterly_holding_scheduleNo
free_allocation_phaseout_pctNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description still adds real value beyond them: transient processing with no storage/logging/retention, the synthetic-input constraint, server-vs-browser compute delegation defaults, and AP2 artifact export with execution_hash. This is meaningful operational context an agent cannot derive from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the body is padded with platform boilerplate (compute binding, FV-status receipt explanation) that duplicates the schema's compute enum and consumes much of the text without advancing tool selection. Everything relevant is present, but several sentences are redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and annotations cover the safety profile. The description supplies chain provenance, data-handling guarantees, and upstream/downstream wiring, which is near-complete for a compute node; the only gap is that policy_parameters contents are left to the external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description only loosely gestures at parent_hashes via upstream artifact consumer/producer wiring and adds nothing on policy_parameters beyond the schema's own manifest pointer, so it does not meaningfully enrich parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line state a specific verb+resource: a CBAM certificate cost and free-allocation compute engine. It is distinguishable from siblings like calculate_cbam_embedded_emissions or resolve_cbam_default_value by resource scope, though the body never explicitly contrasts with them or states what the computation returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is only implied through the chain wiring (consumes art-69-embedded-emissions, feeds cry-05 and art-76) and the 'use synthetic inputs only' constraint. There is no explicit when-to-use or when-not-to-use statement versus sibling CBAM tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_clearing_access_economicsClearing Access Model SelectorA
Read-onlyIdempotent
Inspect

Clearing Access Model Selector: OpenChainGraph compute node (treasury_mandate). Regulatory deadline: 2026-12-31 (flagship access-model decision (W-A).). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-48-treasury-clearing-fit-diagnostic. Output feeds: 504-settlement-risk-capital-optimizer, art-50-ficc-margin-netting-estimator. Open at: https://ainumbers.co/chaingraph/art-49-clearing-access-model-selector.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
cfo_memoNo
model_scoresNo
eligibility_gatesNo
recommended_modelNo
annual_cost_by_modelNo
im_estimate_by_modelNo
execution_access_scoreNo
netting_efficiency_pctNo
segregation_recommendationNo

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real behavioral detail: inputs are processed transiently and not stored or logged, gpu:true nodes always delegate to a browser URL, and the call exports an AP2 artifact carrying execution_hash. That is meaningful context an agent cannot infer from the annotations. It does not describe failure modes or latency/rate behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense metadata dump: regulatory deadline, a page URL, an FV-status content hash, and the sentence 'a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.' These are not needed to select or invoke the tool, and they push the genuinely useful compute-mode guidance into the middle. Front-loading is poor and several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need no narration, and the description covers the operationally critical facts: input handling/privacy, compute-mode delegation, chaining via upstream/downstream artifacts, and artifact export. For a four-parameter compute node with a nested policy_parameters object, this is close to complete, with only error/edge behavior missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode behavior (largely mirroring the schema) and notes policy_parameters are computed server-side, but adds no syntax or format detail beyond the structured fields. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific artifact type and decision domain: an OpenChainGraph compute node producing the 'flagship access-model decision (W-A)' under the treasury_mandate. It also places itself in a pipeline ('Consumes upstream artifacts from: art-48...', 'Output feeds: 504-settlement-risk...'), which distinguishes it from generic compute siblings like run_kernel_vm. It stops short of a crisp verb+resource statement because the purpose is buried under provenance metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the compute-mode semantics (auto vs browser, gpu:true always delegates) and the input-hygiene rule ('Use synthetic or anonymised inputs only'), which is usable context. But it never states when to choose this tool over the adjacent siblings such as run_treasury_clearing_fit or estimate_ficc_margin_netting — the upstream/downstream list implies flow position without giving selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_l1_fee_runwayL1 Continuous-Fee Runway ModelC
Read-onlyIdempotent
Inspect

L1 Continuous-Fee Runway Model: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-496-l1-continuous-fee-runway.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofNo
breakdownNo
rationaleNo
annual_tcoNo
runway_flagNo
horizon_monthsNo
current_balanceNo
validator_countNo
infra_cost_annualNo
fee_rate_defaultedNo
months_to_depletionNo
target_runway_monthsNo
depletion_offset_daysNo
refill_amount_requiredNo
fee_growth_rate_annual_pctNo
fee_rate_avax_per_validator_monthNo

TDQS

C2.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive safety, and the description adds substantial context beyond that: server/browser delegation rules, gpu:true delegation, transient non-retention of inputs, AP2 artifact export with execution_hash, and offline FV receipt verification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description repeats 'OpenChainGraph compute node' and carries boilerplate plus a long URL and full FV-status hash. Provenance detail is appended rather than front-loaded, and the passage is longer than needed for agent selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema and annotations handle return values and safety, and the schema covers parameters. The description covers execution/compute behavior, but for a domain compute node it never explains what an L1 continuous-fee runway is or how to choose policy_parameters, leaving a semantic gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the four parameters. The description repeats compute-mode behavior but adds no meaning for parent_hashes, parent_tool_ids, or the policy_parameters object beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name and repeatedly asserts 'OpenChainGraph compute node' without stating what L1 continuous-fee runway computes or what compliance decision it supports. It identifies a category (compliance_mandate) but not a specific verb or resource, so it is largely tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance relative to the many sibling compute tools. The compute-mode details describe a parameter, not tool selection, and the only usage constraint is to use synthetic or anonymised inputs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_perp_positionPerp Position LifecycleA
Read-onlyIdempotent
Inspect

Perp Position Lifecycle: OpenChainGraph compute node (derivatives_margin_health). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-213-perp-liquidation-calculator. Open at: https://ainumbers.co/chaingraph/art-214-perp-position-lifecycle.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sideYes
venueYes
mmr_pctYes
open_tsYes
close_tsYes
leverageYes
notionalYes
open_feeYes
close_feeYes
liq_priceYes
disclaimerYes
exit_priceYes
total_feesYes
entry_priceYes
n_intervalsYes
price_deltaYes
open_fee_typeYes
position_sizeYes
total_net_pnlYes
close_fee_typeYes
initial_marginYes
margin_returnedYes
realized_pnl_netYes
margin_return_pctYes
realized_pnl_grossYes
total_funding_impactYes
maintenance_thresholdYes
funding_rate_per_intervalYes

TDQS

A3.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context beyond them: deterministic execution, transient input processing with no storage/logging/retention, browser delegation URL behavior for compute:'browser' and gpu:true nodes, and emission of an AP2 artifact carrying execution_hash. These are exactly the behavioral traits an agent cannot infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description is a single dense run-on paragraph that mixes genuine context with boilerplate (compute binding, FV-status snapshot disclaimer, self-verifying receipt language) repeated across nodes. It is informative but not tightly curated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema and complete parameter descriptions, the description need not explain return values. It covers compute modes, upstream chaining, and data-handling, leaving only the core computation itself under-specified. Adequate for a chained, read-only compute node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates compute modes and chaining but adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it is an OpenChainGraph compute node for 'derivatives_margin_health' and the title/name identify it as the perp position lifecycle model, so the resource is identifiable. However it never plainly says what is computed (e.g. margin health / liquidation thresholds for a perpetual position) or distinguishes it from the many sibling modeling tools. An agent would need the name to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational context for the 'compute' mode (auto vs server vs browser, gpu:true always delegates) and names an upstream artifact (art-213-perp-liquidation-calculator) for chaining, which implies usage. But it offers no guidance on when to choose this tool over siblings such as compute_perp_margin, compute_perp_funding, or estimate_cross_margin_benefit. Guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_stablecoin_corridor_economicsStablecoin Corridor Economics ModelC
Read-onlyIdempotent
Inspect

Stablecoin Corridor Economics Model: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-249-compare-corridor-cost. Open at: https://ainumbers.co/chaingraph/art-250-model-stablecoin-corridor-economics.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
net_cost_bpsNo
net_cost_pctNo
table_sourceNo
chain_fee_usdNo
fx_spread_usdNo
table_versionNo
break_even_usdNo
disambiguationNo
gross_cost_bpsNo
gross_cost_pctNo
sdg_target_pctNo
on_ramp_fee_usdNo
send_amount_usdNo
meets_sdg_targetNo
off_ramp_fee_usdNo
regulatory_basisNo
float_savings_usdNo
correspondent_cost_pctNo
correspondent_cost_usdNo
net_stablecoin_cost_usdNo
gross_stablecoin_cost_usdNo
savings_vs_traditional_pctNo
savings_vs_traditional_usdNo
fx_markup_share_of_traditionalNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context: default server-side compute for gpu:false nodes, browser delegation URL under compute:'browser', gpu:true always delegating, transient non-retained processing, and an exported AP2 artifact with execution_hash plus an offline-verifiable FV-status receipt. That is meaningful disclosure beyond the annotations, though it still omits nothing about error or rate behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content arrives as a single dense run-on block mixing title, infrastructure, privacy, provenance, URL, and a long hex receipt. It repeats itself ('OpenChainGraph compute node' / 'Deterministic OpenChainGraph compute node') and buries the few operationally useful facts inside platform boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the return values need not be explained, and parameters are covered by the schema. However, the most important gap for a complex analytics node remains: what the computation models and when to use it. Infrastructure and provenance are well covered, but the substantive purpose is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation duplicates the schema text and it says nothing extra about parent hash chaining or the policy_parameters structure, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the name/title ('Stablecoin Corridor Economics Model: OpenChainGraph compute node') and then spends its length on platform infrastructure (compute binding, delegation, AP2 export) rather than stating what the model actually computes. No verb+resource phrase tells an agent what decision function runs or what economics are modelled, and it is not distinguished from siblings like compare_corridor_cost or check_g20_corridor_cost_gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to select this tool versus the many corridor/payment-modelling siblings. The only usage-like statement is 'Use synthetic or anonymised inputs only,' which is an input constraint rather than a when-to-use rule. 'Output feeds: art-249-compare-corridor-cost' hints at downstream chaining but not selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_tempo_gas_economicsTempo Fee-Sponsorship & Gas-AMM EconomicsB
Read-onlyIdempotent
Inspect

Tempo Fee-Sponsorship & Gas-AMM Economics: OpenChainGraph compute node (treasury_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-35-tempo-payments-business-case. Open at: https://ainumbers.co/chaingraph/art-107-tempo-gas-economics.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cfo_memoNo
baseline_feeNo
annual_savingNo
per_tx_savingNo
effective_costNo
server_paid_pctNo
amm_slippage_bpsNo
blended_gas_costNo
sponsorship_breakeven_txNo

TDQS

B3.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses deterministic execution, server-side Cloudflare Workers processing for gpu:false nodes, browser delegation behavior, transient input handling without storage/logging/retention, AP2 artifact export with execution_hash, upstream artifact consumption, and an FV-status snapshot. This is unusually rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is bloated with repeated 'OpenChainGraph compute node' phrasing, a long FV-status hash, and snapshot caveats that do not help an agent select or invoke the tool. Useful compute-mode information is present but not well front-loaded or pruned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema and full input-schema coverage, the description does not need to explain return values, and it covers execution modes, privacy handling, provenance, and upstream artifact linkage. It remains incomplete on what the gas-economics decision function actually does and what policy_parameters should contain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds only indirect context by mentioning upstream artifact consumption and AP2 artifact export, while leaving policy_parameters field names to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first phrase name a specific domain (Tempo fee-sponsorship and gas-AMM economics), but the body immediately shifts to generic ChainGraph compute-node boilerplate rather than stating what the tool actually computes. It does not distinguish itself from nearby siblings such as model_tempo_payment_economics, convert_tempo_fee_amm, or compute_tempo_mainnet_fee_capacity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives operational guidance for the compute parameter (auto/server/browser delegation) and input hygiene ('Use synthetic or anonymised inputs only'), but it never says when to use this tool versus an alternative or what prerequisites are needed. There is no when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_tempo_payment_economicsTempo Payments Business CaseA
Read-onlyIdempotent
Inspect

Tempo Payments Business Case: OpenChainGraph compute node (treasury_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-34-tempo-fit-diagnostic. Output feeds: art-37-tempo-stablecoin-issuance, art-36-tempo-mpp-agent-mandate. Open at: https://ainumbers.co/chaingraph/art-35-tempo-payments-business-case.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
railNo
verdictNo
saving_bpsNo
stablecoinNo
impl_cost_usdNo
per_tx_tempo_usdNo
annual_saving_usdNo
break_even_monthsNo
per_tx_saving_usdNo
monthly_saving_usdNo
per_tx_incumbent_usdNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuinely new behavior: deterministic execution, transient processing with no storage, logging or retention, the browser-delegation fallback for gpu:true, and an AP2 artifact carrying execution_hash. That is meaningful context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The provenance and compute-mode content is front-loaded and dense, but the trailing FV-status sentence is a long, low-signal block about an offline receipt that does little for tool selection, and the description overall reads as run-on rather than cleanly structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and it does cover the chain position (upstream art-34, downstream art-36/37), the export artifact, and the transient-processing guarantee. What's missing is any statement of the decision the node models, which the agent would need to distinguish it from its economics-modeling siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description's compute-mode sentence duplicates the schema's own enum description almost verbatim. policy_parameters is left to 'the tool's manifest' in both places, so the description adds no field-level meaning. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (Tempo Payments Business Case) and its type (deterministic OpenChainGraph compute node tagged treasury_mandate), and pins it in a provenance chain via art-34/36/37. However, it never states in plain terms what the node actually computes (payment economics), so the agent must infer the verb from the tool name rather than the description. Siblings like model_tempo_gas_economics and model_stablecoin_corridor_economics are not explicitly distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a real constraint ('Use synthetic or anonymised inputs only') and implies ordering by naming the consumed upstream artifact (art-34-tempo-fit-diagnostic) and downstream consumers. But there is no explicit when-to-use/when-not versus the many other model_* economics tools, and the compute-mode guidance is a usage rule the agent must derive from the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_x402_settlementx402 Settlement Cost & Finality ModelerB
Read-onlyIdempotent
Inspect

x402 Settlement Cost & Finality Modeler: OpenChainGraph compute node (settlement_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-01-ap2-mandate-chain-validator. Output feeds: cry-04-merkle-batch-verifier, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-03-x402-settlement-modeler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
finality_secNo
eligible_railsNo
per_tx_fee_usdNo
monthly_cost_usdNo
recommended_railNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real value: transient processing with no logging/retention, a 'synthetic or anonymised inputs only' constraint, the browser-delegation fallback for compute:'browser' and gpu:true, and the AP2 artifact/execution_hash export. These are behavioral traits not encoded in annotations, though the compute-mode text overlaps the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool's identity, but the prose then becomes a run-on of internal metadata (compute binding, retention policy, artifact names, a documentation URL, and a FV-status receipt hash) that a selecting agent gains little from. The FV-status URL/hash is especially costly noise relative to signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return-shape explanation is unnecessary, and the description supplies provenance (execution_hash export, upstream/downstream chain) sufficient for this compute-node tool. What it omits is usage routing and any indication of cost/finality output semantics, which is minor given the output schema covers the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented in the schema. The description restates the compute semantics and chaining intent but adds no syntax, ordering, or format detail beyond what the schema provides, matching the baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line state a concrete verb+resource ('Settlement Cost & Finality Modeler' for x402) and the node identity (settlement_mandate), so the agent knows what is being modeled. It does not contrast itself with the many neighboring model_* tools (e.g. model_tempo_gas_economics, model_arc_cpn_economics), leaving sibling discrimination to the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states upstream/downstream wiring ('Consumes upstream artifacts from art-01...' / 'Output feeds: cry-04...') but never says when to choose this tool over alternatives or what preconditions are required. No when/when-not guidance, only dependency plumbing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

optimize_settlement_capitalSettlement-Risk Capital Efficiency OptimizerC
Read-onlyIdempotent
Inspect

Settlement-Risk Capital Efficiency Optimizer: OpenChainGraph compute node (capital_assessment). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 503-canton-tokenization-readiness-diagnostic. Open at: https://ainumbers.co/tools/504-settlement-risk-capital-optimizer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsYes
verdictYes
cet1_ratioYes
portfolio_bpsYes
cost_of_capitalYes
total_notional_usdYes
total_annual_savingYes
total_capital_freedYes
total_rwa_delta_usdYes

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, and the description adds genuinely useful behavior beyond that: deterministic execution, transient input processing with no storage or logging, browser-vs-server delegation semantics, and emission of an AP2 artifact carrying execution_hash for provenance. It does not, however, describe error behavior or what happens when a referenced parent hash is invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with the title but then spends most of its length on platform boilerplate about compute binding and privacy that likely appears on many sibling tools, plus a long FV-status URL and a ~64-character hash. The high-value content (deterministic, transient, chains from a specific upstream tool) is buried among low-signal strings.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the annotations cover the safety profile. The description does supply the provenance/upstream-chaining context that the schema lacks, but it omits what the tool actually computes and leaves policy_parameters — the tool's real payload — entirely opaque, so an agent can call it but cannot predict or verify its outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes, and parent_tool_ids parameters are already documented in the schema, and the description adds nothing about them. The critical gap is policy_parameters, a free-form object whose description explicitly defers field names to an external manifest the agent cannot see; the description does nothing to fill that hole, so it stays at the high-coverage baseline rather than above it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title verbatim and then characterizes the tool only as a 'deterministic OpenChainGraph compute node (capital_assessment)'. It never explains what optimizing settlement-risk capital efficiency actually means — what inputs it consumes, what decision it makes, or what it returns conceptually — so an agent learns the platform mechanics but not the domain function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool rather than siblings such as compute_settlement_efficiency_kpi, predict_settlement_fail, or estimate_cross_venue_margin_capital. The only routing cues are about compute mode selection and the upstream dependency on 503-canton-tokenization-readiness-diagnostic, which is a chaining hint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

optimize_social_security_claim_ageSocial Security Claiming-Age OptimizerC
Read-onlyIdempotent
Inspect

Social Security Claiming-Age Optimizer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-283-pension-lump-sum-vs-annuity-decision-engine. Open at: https://ainumbers.co/chaingraph/art-282-social-security-claiming-optimizer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
piaNo
claimAgeNo
birthYearNo
lifetimePVNo
longevityAgeNo
fullRetirementAgeNo
breakEvenAge62vs70No
recommendedClaimAgeNo
earningsTestAnnualLimitNo
earningsTestLimitSourceNo
monthlyBenefitAtClaimAgeNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish read-only, idempotent, non-destructive behavior, and the description adds meaningful context beyond that: transient processing with no storage/logging/retention, synthetic-input restriction, AP2 artifact export with execution_hash, and browser/server delegation semantics. It does not contradict the annotations and covers data-handling and provenance behavior well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and front-loaded with boilerplate about OpenChainGraph compute nodes before reaching useful invocation context. It includes a URL, a full FV-status hash, and off-topic provenance text that consumes space without helping an agent decide whether or how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description need not explain return values, and it does cover compute modes, data retention, and provenance. However, for a decision-function tool whose key input is an unconstrained policy_parameters object, it fails to explain what fields belong there, leaving a significant invocation gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even without extra parameter detail in the description. The description largely repeats the schema's compute-mode semantics and only says policy_parameters are defined in the manifest, adding no field-level meaning beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a Social Security claiming-age optimizer and an OpenChainGraph compute node, so the general domain is clear. However, it spends most of its text on infrastructure, provenance, and compute-mode details rather than stating what the optimizer actually computes or how it differs from siblings like compute_annuity or compare_pension_lump_sum_annuity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides operational guidance for compute modes and warns to use synthetic or anonymised inputs, but gives no when-to-use context relative to alternatives. It never explains when an agent should choose this tool instead of the many other pension, annuity, or claiming-related siblings listed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

oracle_price_aggregationOracle Price AggregationB
Read-onlyIdempotent
Inspect

Oracle Price Aggregation: OpenChainGraph compute node (oracle_price_aggregation). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-561-currency-basket-index. Open at: https://ainumbers.co/chaingraph/art-560-oracle-price-aggregation.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
epochNo
fenceNo
not_provenNo
currency_pairNo
max_submittedNo
min_submittedNo
outlier_countNo
chain_positionNo
outlier_detailNo
fault_toleranceNo
prev_print_hashNo
rejected_inputsNo
surviving_countNo
aggregated_priceNo
outliers_flaggedNo
price_spread_pctNo
structural_errorNo
submission_countNo
stale_submissionsNo
aggregation_methodNo
aggregate_confidenceNo
outlier_threshold_pctNo
priced_submission_countNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the safety profile is covered. The description goes beyond them by disclosing determinism, transient non-stored/non-logged input handling, server-side execution on Cloudflare Workers with a browser delegation fallback, and AP2 artifact emission with execution_hash — all behaviorally relevant. It stops short of describing latency, cost, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is dense and most sentences carry distinct facts (compute routing, privacy, provenance, downstream feed, FV receipt), but the opening redundantly restates the name twice, and the long documentation URL plus 64-hex FV-status path consume substantial space without aiding invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers execution mode, privacy posture, provenance chaining, and downstream consumption. The notable gap is the domain core: what prices are aggregated and what belongs in policy_parameters, which is deferred entirely to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and each of the four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) is already documented in the schema, so the baseline is 3. The description's compute-mode prose duplicates the schema and adds no new parameter semantics; policy_parameters is explicitly punted to "the tool's manifest."

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence is essentially a restatement of the name ("Oracle Price Aggregation: ... compute node (oracle_price_aggregation). Deterministic ... compute node"). It does add that it exports an AP2 artifact with an execution_hash and that its output feeds art-561-currency-basket-index, which hints at function, but it never states what is actually aggregated (which oracles, which assets, what the price output represents) or why this node differs from the many other compute_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real guidance on compute mode selection (auto/server/browser, gpu:true always delegates) and a constraint ("Use synthetic or anonymised inputs only"). However, there is no guidance on when to reach for this node versus alternatives such as currency_basket_index or the downstream consumer, so routing among siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

otlp_span_receiptGenerate or verify a per-span OTel receipt bundle over an OTLP/JSON traceAInspect

OTLP span/trace to receipt bundle; does NOT build a ChainGraph (use build_chaingraph for that). Three modes, chosen by which input is supplied. (1) Pass trace alone to GENERATE a receipt bundle: a per-span receipt (span digest, parent-span receipt digest, semconv_snapshot, eddsa-jcs-2022 signature over an ephemeral did:key) for every span, plus a Merkle-rooted (RFC 6962) trace receipt. (2) Pass bundle ({trace, span_receipts, trace_receipt, issuer_did}) to VERIFY it: recomputes every digest, walks the parent-receipt chain, rebuilds the Merkle root, and reports which spans are attested, unattested, or tampered. (3) Pass run_chain_result (the structuredContent from run_chain) instead of trace to bridge a ChainGraph chain run into an OTLP trace first -- one execute_tool span per successfully-executed step, each carrying its own execution_hash as a span attribute (ocg.execution_hash) -- then generates the same receipt bundle over it. Byte-identical receipt engine to tools/566-otel-span-receipt-verifier.html -- a human's browser-generated bundle and this tool's output interoperate on the exact same wire shape.

ParametersJSON Schema
NameRequiredDescriptionDefault
traceNoAn OTLP/JSON trace document to generate a receipt bundle over. Omit if passing bundle or run_chain_result.
bundleNo{trace, span_receipts[], trace_receipt, issuer_did} to VERIFY instead of generate.
serviceNoresource service.name to stamp when bridging run_chain_result into a trace. Defaults to "ainumbers-chaingraph-worker".
run_chain_resultNoThe structuredContent object returned by run_chain (must include chain and steps[]) -- bridges the chain run into an OTLP trace, then generates a receipt bundle over it.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

All annotation hints are false, so the description carries the full transparency burden. It comprehensively explains the receipt contents, digest computation, parent-chain traversal, Merkle root rebuild, attestation/tampering reporting, and trace-bridge semantics, plus the interoperable wire format with the external browser verifier.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but organized: a one-line grounding assertion, a numbered three-mode breakdown, and a closing interoperability note. Every sentence contributes behavior, constraints, or invocation guidance, and it is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must compensate by explaining return shapes and behavior. It covers the receipt bundle, the verification reporting options (attested/unattested/tampered), the bridge attribute name, and the exact default service value, making the tool fully call-safe.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although all params are already described in the schema, the prose adds meaning beyond property descriptions: it defines the mode selection rule, requires run_chain_result to include chain and steps[], specifies the bundle verification fields, and declares the service default. This makes parameter usage actionable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete verb-resource mapping ('OTLP span/trace to receipt bundle') and explicitly names the exact verbs: generate, verify, and bridge. It also disambiguates from the sibling tool by saying 'does NOT build a ChainGraph (use build_chaingraph for that)'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear when-to-use guidance for all three modes: pass trace to generate, pass bundle to verify, and pass run_chain_result to bridge. It also names build_chaingraph as the explicit alternative when a ChainGraph is what the caller actually needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

otlp_validateValidate an OTLP/JSON trace for structure + gen_ai conformanceA
Read-onlyIdempotent
Inspect

Structurally validates an OTLP/JSON trace (resourceSpans -> scopeSpans -> spans: hex traceId/spanId shape, quoted nanosecond timestamps, parent-span references, time ordering) and checks every gen_ai span's attributes against a pinned gen_ai semantic-convention attribute snapshot (the upstream open-telemetry/semantic-conventions-genai namespace ships zero tagged releases, so this is a dated pin, stamped as semconv_snapshot in the result -- expect it to drift as the upstream spec moves). Byte-identical lint engine to tools/556-otlp-genai-span-composer-linter.html.

ParametersJSON Schema
NameRequiredDescriptionDefault
traceYesAn OTLP/JSON trace document: { resourceSpans: [{ scopeSpans: [{ spans: [...] }] }] }.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds important behavioral context: it performs static structural validation against a pinned (dated) semantic convention snapshot, acknowledges potential drift, and notes it's byte-identical to a lint engine. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences but densely packed with relevant technical details. Every clause adds value, and the information is logically ordered from general purpose to specific checks to annotations about the semantic convention snapshot. No extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter validation tool with no output schema, the description covers the input structure, the scope of validation, and a key caveat about the semantic convention snapshot. It mentions a result stamp but does not detail the output format. However, given the tool's straightforward nature, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single 'trace' parameter has 100% schema coverage. The description adds specific structural expectations (resourceSpans, scopeSpans, spans, hex IDs, timestamps) that go beyond the schema's basic description, providing the agent with concrete formatting requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and description clearly state the tool validates OTLP/JSON traces for structure and gen_AI conformance, listing specific checks like hex IDs, timestamps, and parent-span references. This distinguishes it from sibling tools that validate other entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly provide guidance on when to use this tool versus alternatives. It mentions a reference to another tool but lacks direct context on exclusions or when-not to use. The usage is implied by the tool's purpose but not elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pain001_validateValidate a pain.001.001.09 message against the schema-subset tableA
Read-onlyIdempotent
Inspect

Validates a pain.001.001.09 customer credit transfer initiation XML document against the same hand-derived schema-subset table as the tools/555 browser validator -- structural (mandatory fields), facet (IBAN mod-97, BIC format, ISO 4217 currency, decimal/date patterns), and batch-total cross-checks (NbOfTxs vs. actual transaction count, CtrlSum vs. sum of InstdAmt). Byte-identical error set to the browser tool for the same input. Subset validation, not full XSD conformance -- prepare/validate only, never transmits or generates a live payment message.

ParametersJSON Schema
NameRequiredDescriptionDefault
xmlYespain.001.001.09 XML document text to validate.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide idempotentHint=true and readOnlyHint=true, and the description adds significant behavioral details: it enumerates the exact validation checks (mandatory fields, IBAN mod-97, BIC format, ISO 4217 currency, etc.), notes byte-identical errors to a browser tool, and clarifies it does not transmit or generate live payments. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that efficiently conveys purpose, scope, and key behaviors without unnecessary words. It is front-loaded with the core action. While slightly dense, it remains readable and avoids verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (specific validation logic) and the absence of an output schema, the description covers most necessary aspects: what it validates, what it does not, and its non-destructive nature. It lacks explicit documentation of the return format (e.g., list of errors or success status), but the 'byte-identical error set' hint somewhat compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter (xml) with schema coverage 100%. The description adds context by specifying the expected XML format (pain.001.001.09), which is already implied by the tool name. This provides minor additional value beyond the schema's type and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as validating a pain.001.001.09 XML against a schema-subset table, listing specific checks (structural, facet, batch-total) and explicitly distinguishing it from full XSD validation. The verb 'validates' paired with the specific message type makes the purpose unambiguous, and it is well-differentiated from sibling validation tools by its focus on a specific ISO 20022 message.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the tool is for 'subset validation, not full XSD conformance' and that it 'never transmits or generates a live payment message,' providing clear boundaries. It implies usage for pre-validation of pain.001.001.09 messages. However, it does not explicitly reference sibling tools or alternative validation approaches, missing a small opportunity for guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_camt053_reconciliationISO 20022 camt.053 Statement ReconciliationC
Read-onlyIdempotent
Inspect

ISO 20022 camt.053 Statement Reconciliation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-263-score-cash-forecast-accuracy. Open at: https://ainumbers.co/chaingraph/art-258-parse-camt053-reconciliation.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
varianceNo
debit_sumNo
credit_sumNo
table_sourceNo
table_versionNo
bucket_amountsNo
match_rate_pctNo
closing_balanceNo
opening_balanceNo
not_legal_adviceNo
regulatory_basisNo
structured_countNo
calculated_closingNo
total_transactionsNo
unstructured_countNo
tx_counts_by_bucketNo
day_count_conventionNo
reconciliation_statusNo
balance_equation_passesNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description adds real behavioral context beyond that: transient processing with no storage or logging, GPU delegation rules, and an exported AP2 artifact carrying an execution_hash for chain provenance. That is meaningful disclosure the structured fields do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening statement of purpose is front-loaded, but the body is padded with node-type boilerplate, a documentation URL, and a long FV-status hash that consumes attention without helping an agent invoke the tool. Considerable trimming is possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compute node with nested policy_parameters and an output schema, the description never states the expected input form (a camt.053 XML document) or what the reconciliation result contains. Privacy and artifact provenance are covered, but the core input/output contract is left to the manifest and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented. The description reinforces the compute-mode and chaining semantics but adds no syntax or format detail not already in the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (ISO 20022 camt.053 statements) and asserts a reconciliation operation, but never explains what is actually parsed or reconciled, nor what distinguishes it from the close siblings camt053_parse, map_mt9xx_to_camt, or reconcile_report_to_general_ledger. The leading sentence largely restates the title plus node type boilerplate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance about compute modes (auto/server/browser) but nothing about when this tool should be chosen over the sibling camt.053 or reconciliation tools, and no exclusions or prerequisites. Task-selection guidance is entirely absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_aml_disposition_sampleAML Disposition Sampling Frame BuilderC
Read-onlyIdempotent
Inspect

AML Disposition Sampling Frame Builder: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-471-disposition-sampling-frame.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
methodNo
intervalNo
sample_sizeNo
start_offsetNo
reviewer_rosterNo
confidence_levelNo
expansion_factorNo
selected_indicesNo
reviewer_workloadNo
expected_deviation_rateNo
tolerable_deviation_rateNo
disposition_population_hashNo
disposition_population_sizeNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context: transient processing with no storage/logging, a 'synthetic or anonymised inputs only' constraint, browser delegation behavior for gpu:true nodes, and an exported AP2 artifact carrying execution_hash. These are non-obvious operational traits. It stops short of 5 because the disclosure is generic platform boilerplate rather than anything specific to this node's AML behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long and front-loaded with platform framing rather than the tool's actual purpose. Roughly half the sentences (compute routing, FV-status receipt file, 'open at' URL) are operational meta-content that does not help an agent decide what this tool computes or whether to call it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required. However, for a 4-parameter node with nested policy_parameters and a domain-specific purpose, the description omits the core information an agent needs: what the sampling frame produces and what policy_parameters should contain. Coverage of compute mechanics is good, coverage of the actual domain function is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (compute, parent_hashes, parent_tool_ids, policy_parameters) is already documented in the schema. The description adds nothing beyond the schema about parameter meaning or format, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the name and title ('AML Disposition Sampling Frame Builder: OpenChainGraph compute node (compliance_control)') and then pivots entirely to infrastructure boilerplate. It never explains what a disposition sampling frame is, what it computes, or how it differs from siblings like plan_attribute_sample or roll_up_aml_lookback_disposition. This is effectively a tautology of the title plus platform metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many AML/lookback/sampling siblings. The only 'when' statements concern compute mode ('auto' vs 'browser'), which are parameter choices, not tool-selection guidance. An agent cannot infer the selection condition from this text.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_attribute_sampleAttribute Sampling Plan GeneratorC
Read-onlyIdempotent
Inspect

Attribute Sampling Plan Generator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-458-attribute-sampling-plan.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
methodNo
intervalNo
sample_sizeNo
start_offsetNo
population_hashNo
population_sizeNo
confidence_levelNo
expansion_factorNo
selected_indicesNo
expected_deviation_rateNo
tolerable_deviation_rateNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds real value beyond them: transient processing with no storage/logging/retention, deterministic execution, server-side vs browser delegation behavior, and the emission of an AP2 artifact carrying execution_hash for provenance. The only gap is return/pagination shape, which the output schema covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front is cluttered with repeated boilerplate ('OpenChainGraph compute node', 'Deterministic OpenChainGraph compute node'), and the trailing FV-status URL with a 64-character hash blob plus the 'snapshot, not a subscription' note consume space an agent cannot act on. The genuinely useful compute-mode and privacy sentences are buried among promotional/spec text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and all four parameters are optional with full schema coverage. However, the description is the only place the tool's domain behavior could be characterized, and it stops at platform mechanics — an agent still cannot tell what an attribute sampling plan computes or what policy_parameters must contain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation essentially mirrors the schema's own description, and it defers policy_parameters field names to 'the tool's manifest,' adding no meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the artifact (attribute sampling plan) and classifies it as a compute node in the compliance_control family, so the resource is identifiable. But it never states what the tool actually computes or returns, and 'Attribute Sampling Plan Generator' largely restates the name/title. Beyond the OpenChainGraph taxonomy, the functional purpose stays vague relative to siblings like plan_aml_disposition_sample.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is substantive guidance on compute mode (auto/server/browser, gpu:true always delegates), but that is invocation configuration, not tool-selection guidance. Nothing says when to choose this tool over the many other sampling/planning or compliance_compute siblings, nor any preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plan_tls_pki_migrationTLS / X.509 PKI Migration PlannerC
Read-onlyIdempotent
Inspect

TLS / X.509 PKI Migration Planner: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-85-pqc-timeline-fit-diagnostic, 499-crypto-asset-inventory-classifier. Output feeds: cry-04-merkle-batch-verifier, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-86-tls-pki-migration-planner.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
strategyNo
pki_summaryNo
interop_risksNo
inventory_refNo
algorithm_refsNo
migration_planNo
rollback_pointsNo
reference_versionNo
payload_impact_bytesNo
estimated_total_weeksNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely non-obvious behavior: transient processing with no storage, logging, or retention, a constraint to use synthetic or anonymised inputs only, and an AP2 artifact export carrying execution_hash. These are real operational facts an agent cannot get from the annotations, though return format and failure behavior are unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentences are dominated by compute-node, caching, and provenance metadata (a long FV-status hash URL, 'snapshot, not a subscription', artifact IDs) before any statement of what the planner does. Several sentences restate schema content, and the actual purpose is never front-loaded, so the length is not earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a domain-heavy planning tool with zero required parameters and a nested free-form 'policy_parameters' object whose field names are deferred to 'the tool's manifest', the description gives no indication of what a migration plan contains or which inputs drive it. The output schema covers return values, but the agent still lacks enough to invoke this correctly versus its PQC-planning neighbors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including the compute enum and the two chaining arrays) are already documented in the schema, and the description's compute-mode text largely restates the schema. Only the chaining intent ('parent_hashes'/'parent_tool_ids' setting chain.parent_hashes) is echoed from the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify the resource (TLS/X.509 PKI migration planning), but the description itself never states in a verb+resource form what the tool produces; it leads with infrastructure boilerplate ('OpenChainGraph compute node', 'compliance_mandate') instead of the planning action. A reader can infer the purpose from the title, but the prose does not confirm or sharpen it, and there is no differentiation from nearby PQC planning siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use statement, no prerequisites, and no comparison against alternatives such as run_pqc_timeline_fit, compute_pqc_deadline_ladder, or check_iso20022_pqc_readiness, which appear in the sibling list. The upstream/downstream artifact references ('art-85-pqc-timeline-fit-diagnostic' feeds in, 'cry-04-merkle-batch-verifier' consumes out) hint at pipeline position but do not tell an agent when to select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

precheck_reserve_attestationGENIUS Act Reserve Attestation Pre-CheckB
Read-onlyIdempotent
Inspect

GENIUS Act Reserve Attestation Pre-Check: OpenChainGraph compute node (attestation_mandate). Regulatory deadline: 2027-01-01 (GENIUS Act effective ≤ January 2027; monthly reserve reports + annual PCAOB audit (>$50B issuers); FDIC NPRM April 2026). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-06-genius-act-reserve-attestation.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
warningsYes
asset_resultsYes
coverage_ratio_pctYes
failing_dimensionsYes
total_reserves_usdYes
applicable_deadlineYes
aicpa_2025_score_pctYes
regulatory_frameworkYes
prohibited_assets_usdYes
reserve_shortfall_usdYes
total_liabilities_usdYes
conditional_assets_usdYes
attestation_readiness_determinationYes

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive). The description adds genuine value with the transient-processing/no-storage guarantee, the forced-browser delegation behavior for compute modes, and the fact that it exports an AP2 artifact carrying execution_hash for provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Regulatory deadline text, the FV-status hash URL, and repeated compute-mode explanation crowd the description. It is front-loaded with the purpose but carries more boilerplate than an agent needs to select the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers compute binding, chaining inputs, artifact export, and the downstream consumer. It is nearly complete, missing only a clear statement of what the decision function actually evaluates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented. The compute-mode sentences in the description largely duplicate the schema's own description rather than adding syntax or examples, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line identify the domain (GENIUS Act reserve attestation pre-check), but the body never states plainly what the pre-check computes or validates — it drifts into deadline boilerplate and compute-node plumbing. It also fails to differentiate itself from close siblings like check_genius_reserve_disclosure_conformance or verify_reserve_proof.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit statement of when to call this versus the sibling conformance/reserve tools. The reader must infer use from the regulatory deadline context and the synthetic-inputs note, both of which are constraints rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

predict_settlement_failSettlement-Fail PredictorC
Read-onlyIdempotent
Inspect

Settlement-Fail Predictor: OpenChainGraph compute node (model_governance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-77-t1-settlement-readiness-diagnostic, art-80-ssi-conformance-checker. Output feeds: art-84-settlement-efficiency-kpi, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-79-settlement-fail-predictor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
methodologyNo
top_driversNo
trade_countNo
scored_tradesNo
batch_fail_rate_estimateNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses genuinely useful traits: transient processing with no storage/logging/retention, deterministic execution, server-vs-browser delegation semantics, and an exported AP2 artifact carrying an execution_hash for provenance. These are real behavioral facts an agent cannot get from the annotations or schema. It stops short of describing rate limits or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded reasonably (name, node type, then compute behavior, data handling, provenance), and most sentences carry information. However, 'Deterministic OpenChainGraph compute node' redundantly repeats the immediately preceding 'OpenChainGraph compute node', and the closing FV-status sentence with a 64-character hash and an offline-receipt caveat is boilerplate that does not help tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so return values and read-only status need no prose. The description covers compute routing, data handling and chain provenance adequately, but for a chained predictive compute node it still omits what the settlement-fail prediction actually evaluates and what policy_parameters must contain, leaving a substantive gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented in the schema; baseline is 3. The description adds only the chaining context ('Consumes upstream artifacts from ...') and does not clarify policy_parameters field names, deferring to the manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Settlement-Fail Predictor: OpenChainGraph compute node (model_governance)', which largely restates the tool name and title rather than explaining what the prediction computes or on what basis. It never states a concrete verb+resource for the decision function; the reader must infer the substance from the name alone. The upstream/downstream artifact IDs add positioning context but not purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states one usage constraint ('Use synthetic or anonymised inputs only') and explains compute-mode routing, but gives no when-to-use/when-not guidance relative to siblings like compute_settlement_efficiency_kpi, classify_settlement_finality, or run_tokenized_settlement_fit. The artifact feed list implies workflow position without stating selection conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prevalidation_readiness_scorerCross-Border Payment Prevalidation Readiness ScorerB
Read-onlyIdempotent
Inspect

Cross-Border Payment Prevalidation Readiness Scorer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-243-purpose-code-requirement-checker. Open at: https://ainumbers.co/chaingraph/art-247-prevalidation-readiness-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
readyNo
pii_noteNo
checks_totalNo
table_sourceNo
check_detailsNo
checks_passedNo
readiness_pctNo
table_versionNo
chain_gate_noteNo
regulatory_basisNo
cbpr_plus_deadlineNo
remediation_actionsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), yet the description adds genuinely new traits: deterministic execution, transient processing with no storage/logging/retention, browser-delegation behavior per compute mode, and an exported AP2 artifact carrying execution_hash for chain provenance. The offline-verifiable FV-status receipt is also disclosed. Only minor gaps remain, such as whether artifact export has any persistence implication for a readOnly-declared tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode explanation is duplicated almost verbatim between the description and the compute parameter's schema description, and the final sentence embeds a raw 64-character FV-status hash that consumes space without helping tool selection. It is front-loaded with the title, but functional content is buried behind infrastructure boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the compute-node contract (modes, provenance, retention) is covered. What is missing is the substantive part: what the score represents, what policy_parameters must contain beyond a pointer to an external manifest, and how the upstream artifact from art-243 feeds the computation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, and the description's compute-mode prose largely restates the enum description. The description does clarify the parent_hashes/parent_tool_ids chaining intent, but for policy_parameters it punts to 'See the tool's manifest for field names', which is an admission that the actual decision inputs are undocumented here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description repeats the title verbatim and labels the tool an 'OpenChainGraph compute node (compliance_mandate)', but never explains what a cross-border payment prevalidation readiness score actually measures or what the decision function evaluates. It gains some specificity by naming the upstream artifact it consumes (art-243-purpose-code-requirement-checker), which implies the functional domain, but an agent still cannot describe the tool's output beyond its name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is about compute modes (auto/server/browser) and the input-safety caveat 'Use synthetic or anonymised inputs only'. There is no statement of when to prefer this scorer over the many sibling readiness diagnostics (run_vop_readiness_diagnostic, assess_psd3_readiness, run_mica_casp_fit, etc.) or what prerequisites must hold.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

price_embedded_insuranceEmbedded Insurance Pricing ModellerC
Read-onlyIdempotent
Inspect

Embedded Insurance Pricing Modeller: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-366-price-embedded-insurance.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
opex_costNo
annual_gwpNo
monthly_gwpNo
per_tx_premiumNo
commission_costNo
expected_lossesNo
expense_ratio_pctNo
combined_ratio_pctNo
net_written_premiumNo
underwriting_profitNo
breakeven_loss_ratio_pctNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnly, idempotent, non-destructive, closed-world) cover the safety profile, and the description adds genuinely new behavior: server-side vs browser delegation semantics for `auto`/`server`/`browser`, gpu:true always delegating, transient non-retained input processing, and an AP2 artifact with execution_hash for chain provenance. That is above the annotation baseline, though it omits rate limits and what the returned artifact actually contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is buried behind infrastructure boilerplate, and the trailing FV-status sentence plus a 64-character hash URL consumes a large share of the text without helping an agent decide whether to call the tool. The sentence 'Inputs are processed transiently...' relabels the same point made twice ('not stored, logged, or retained').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and compute/verification behavior is reasonably covered. However, for a nested-object analytics tool the domain contract is missing: what `policy_parameters` should contain is punted to an external manifest, and nothing explains what pricing quantity the node produces.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description only restates the compute-mode semantics already spelled out in the schema, and defers policy_parameters field names to 'the tool's manifest' rather than adding anything — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/description identifies the resource ('Embedded Insurance Pricing Modeller') but the body never states what is actually computed — premium, commission, loss ratio, coverage tranche — and just labels itself 'OpenChainGraph compute node (analytics_mandate)'. A reader learns the plumbing (compute modes, artifact export) rather than the analytical purpose, so it is only separable from the ~hundreds of sibling `compute_*` nodes by name, not definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is one real constraint — 'Use synthetic or anonymised inputs only' — and an implied choice between compute modes. But there is no guidance on when this pricing model applies versus alternatives (e.g. other pricing/insurance siblings), no prerequisites, and no indication of what the tool is *not* for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prove_metadata_sanitizationMetadata Sanitization ProverB
Read-onlyIdempotent
Inspect

Metadata Sanitization Prover: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-191-conversion-receipt-builder. Open at: https://ainumbers.co/chaingraph/art-193-metadata-sanitization-prover.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
residual_risksNo
sanitization_recordNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, non-open-world behavior. The description adds genuinely new behavioral facts: transient processing with no storage/logging/retention, deterministic computation, server-vs-browser delegation semantics, GPU-node behavior, and AP2 artifact emission with execution_hash. Only the compute-mode prose duplicates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with compute behavior and data-handling guarantees, but there is redundancy ('Metadata Sanitization Prover: OpenChainGraph compute node' immediately followed by 'Deterministic OpenChainGraph compute node') and a trailing URL/FV-status JSON blob of marginal agent value. Dense but mostly purposeful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a full-coverage schema, an output schema, and nested objects, the description covers the key unknowns an agent faces: execution locality, privacy posture, provenance chaining, and the downstream artifact consumer. The opaque 'decision function' semantics are the only real gap, and those are punted to the manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description re-states the compute enum semantics but adds nothing about chaining order, hash format, or what the policy_parameters object should contain – baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title pair already states the verb and resource (prove/sanitize metadata), and the description mostly reframes it as an 'OpenChainGraph compute node' with an AP2 export rather than explaining what the sanitization proof actually asserts – it defers to 'the tool's manifest for field names'. It names a downstream sibling (art-191-conversion-receipt-builder) but does not differentiate this tool from the many other prove/validate_*_metadata siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies an input constraint ('Use synthetic or anonymised inputs only') but no when-to-use or when-not-to-use guidance, no alternatives, and no routing condition relative to the large sibling set. An agent learns the data-handling rule, not when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_fund_nav_headPublish Fund NAV HeadA
Read-onlyIdempotent
Inspect

Publish Fund NAV Head: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-373-recompute-fund-nav. Open at: https://ainumbers.co/chaingraph/art-659-publish-fund-nav-head.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
seqYes
rootYes
fenceYes
errorsYes
signerYes
streamYes
head_hashYes
timestampYes
is_genesisYes
not_provenYes
rotates_toYes
chain_validYes
chain_errorsYes
prev_head_hashYes
signature_validYes
structural_errorYes
chain_verified_byYes
regulatory_frameworkYes
signature_verified_byYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context beyond them: transient processing with no storage/logging/retention, determinism, browser-delegation semantics for gpu:true nodes, and the AP2 execution_hash provenance export. This is materially more than the structured hints provide, though it is somewhat repetitive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the opening is redundant ('OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node') and the trailing FV-status hash and URL are low-value for an agent deciding how to invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a full output schema, and 100% schema coverage, the description supplies the remaining context an agent needs: data-handling constraints, compute-binding behavior, and chain provenance. The main residual gap is the ambiguity of what 'publish a NAV head' concretely produces, which it does not fully clarify.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description restates the compute-mode semantics verbatim rather than adding meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (exports an AP2 artifact for 'Fund NAV Head'), names the upstream artifact it consumes (art-373-recompute-fund-nav), and identifies itself as an OpenChainGraph compute node in the attestation_mandate family. It is distinguishable from siblings like publish_index_head and publish_market_mark_head by the NAV-specific upstream chain, though the phrase 'NAV head' remains jargon-heavy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives useful operational guidance on compute modes ('auto' default, 'browser' forces client-side) and mandates 'synthetic or anonymised inputs only', plus names the upstream artifact dependency. However, it gives no guidance on when to choose this over recompute_fund_nav or the other publish_*_head siblings, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_index_headPublish Index HeadA
Read-onlyIdempotent
Inspect

Publish Index Head: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-646-compile-rebalance-evidence-pack, art-647-record-index-correction. Open at: https://ainumbers.co/chaingraph/art-658-publish-index-head.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
seqYes
rootYes
fenceYes
errorsYes
signerYes
streamYes
head_hashYes
timestampYes
is_genesisYes
not_provenYes
rotates_toYes
chain_validYes
chain_errorsYes
prev_head_hashYes
signature_validYes
structural_errorYes
chain_verified_byYes
regulatory_frameworkYes
signature_verified_byYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds substantive behavioral context beyond that: transient processing with no storage/logging/retention, server-vs-browser delegation semantics, GPU-node delegation, and exactly what artifact is exported (AP2 with execution_hash). It stops short of describing response shape, but the output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Mostly front-loaded and informative, but it duplicates 'Deterministic OpenChainGraph compute node' and packs a dense, hard-to-parse FV-status sentence with a long hash at the end. Some sentences repeat compute-mode facts already in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description compensates with compute-mode selection, data-handling guarantees, chain provenance via execution_hash, and the upstream artifact dependencies. It is close to complete for a compute node, missing only an explicit statement of when this node should be used.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely restates the compute-mode semantics already present in the schema description and adds no field-level detail beyond it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Publish Index Head'), identifies it as a deterministic OpenChainGraph compute node for the attestation_mandate, and names the exact upstream artifacts it chains from (art-646, art-647). It is clearly distinguishable from generic compute siblings, though the opening repeats 'OpenChainGraph compute node' twice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real guidance in 'Use synthetic or anonymised inputs only' and details when compute:'auto' vs 'browser' vs 'server' applies, but there is no explicit statement of when to choose this tool over its siblings or the conditions that select it. Usage is implied rather than framed as when/when-not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_market_mark_headPublish Market Mark HeadB
Read-onlyIdempotent
Inspect

Publish Market Mark Head: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-560-oracle-price-aggregation. Open at: https://ainumbers.co/mcp.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
seqYes
rootYes
fenceYes
errorsYes
signerYes
streamYes
head_hashYes
timestampYes
is_genesisYes
not_provenYes
rotates_toYes
chain_validYes
chain_errorsYes
prev_head_hashYes
signature_validYes
structural_errorYes
chain_verified_byYes
regulatory_frameworkYes
signature_verified_byYes

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive/closed-world, but the description adds genuinely useful behavior: deterministic execution, transient processing with no storage/logging/retention, the explicit 'synthetic or anonymised inputs only' restriction, and the offline-verifiable FV-status receipt. It stops short of describing failure modes or delegation-URL lifetimes, so it isn't a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens by restating the tool name and immediately repeats the 'OpenChainGraph compute node' phrase in two consecutive sentences, which is wasted space. The remaining content on compute modes, privacy, provenance, and the FV-status URL is dense but mostly earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% parameter coverage, the description needn't explain return values, and it does cover the compute-mode matrix, chaining inputs, privacy handling, and provenance export. The gap is that the core domain meaning of 'market mark head' remains unexplained for a tool sitting in a crowded publish_* family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter already carries its own description, so the baseline is 3. The description restates the compute modes with marginal added nuance ('browser... returns a browser delegation URL instead') but never mentions parent_hashes, parent_tool_ids, or policy_parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the artifact class ('OpenChainGraph compute node (attestation_mandate)') and that it exports an AP2 artifact with execution_hash, but it never says what a 'market mark head' actually represents or what the computation produces, so the specific verb+resource is only half-defined. Its only real differentiator from siblings like publish_fund_nav_head or publish_index_head is the 'Consumes upstream artifacts from: art-560-oracle-price-aggregation' line, which is buried at the end.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The text explains compute-mode semantics but gives no when-to-use guidance and never names an alternative among the many publish_*/oracle tools. The closest thing to guidance is 'Use synthetic or anonymised inputs only', which is an input constraint, not routing advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_model_risk_headPublish Model Risk HeadA
Read-onlyIdempotent
Inspect

Publish Model Risk Head: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-453-model-validation-status, art-489-model-test-battery, art-562-compile-model-risk-lineage-pack. Open at: https://ainumbers.co/chaingraph/art-649-publish-model-risk-head.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
seqYes
rootYes
fenceYes
signerYes
streamYes
head_hashYes
timestampYes
is_genesisYes
not_provenYes
rotates_toYes
chain_validYes
chain_errorsYes
prev_head_hashYes
signature_validYes
structural_errorYes
chain_verified_byYes
regulatory_frameworkYes
signature_verified_byYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, and the description adds real behavioral context beyond them: transient processing with no storage, logging, or retention, a 'use synthetic or anonymised inputs only' constraint, server-vs-browser delegation behavior, and the chained artifact it consumes and emits. Missing specifics on failure modes and permission requirements keep it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the prose is dense and partly redundant ('OpenChainGraph compute node' repeated twice) and the trailing artifact-URL and FV-status receipt text adds length without clarifying invocation. It is serviceable rather than tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the description still covers compute modes, data-handling policy, upstream artifact consumption, and chain provenance. For a 4-parameter compute/export node this is close to complete, with only failure and permission behavior left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description restates the compute-mode behavior but adds no syntax, ordering, or format detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (publish the Model Risk Head) and describes the mechanics: an OpenChainGraph compute node that exports an AP2 artifact with execution_hash for chain provenance. It does not, however, differentiate itself from close siblings such as publish_index_head, publish_market_mark_head, or emit_chaingraph_artifact, so an agent cannot tell which publish head to pick from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute mode semantics are spelled out (auto/server/browser, gpu:true always delegates), which gives usage context, but there is no explicit when-to-use / when-not-to-use guidance and no routing to alternative tools. The agent must infer that this specific head is the right one among many publish_* and emit_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdarr_aggregation_recomputeRDARR Aggregation RecomputeA
Read-onlyIdempotent
Inspect

RDARR Aggregation Recompute: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-480-rdarr-aggregation-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
deltaNo
fenceNo
roundingNo
delta_pctNo
not_provenNo
netting_setsNo
base_currencyNo
lines_excludedNo
lines_includedNo
netting_appliedNo
reported_figureNo
recomputed_figureNo
contribution_breakdownNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, but the description adds real behavioral content beyond them: inputs are processed transiently and not stored or logged, only synthetic or anonymised inputs should be used, browser mode returns a delegation URL instead of a computed result, and an AP2 artifact with execution_hash is exported for chain provenance. The data-retention and delegation behaviors are exactly the kind of context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and compute-mode semantics are front-loaded and useful, but the text is padded with a raw documentation URL, a 64-hex FV-status path, and a paragraph explaining that the receipt 'verifies offline' that an agent does not need in order to invoke the tool. Every sentence does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the annotations cover the safety profile. Combined with the disclosed retention policy, compute-mode matrix, and provenance export, this is nearly complete; the remaining gap is that policy_parameters fields are deferred to an external manifest not present here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's treatment of compute modes largely restates the schema's own compute description, and it adds nothing about parent_hashes/parent_tool_ids ordering or the opaque policy_parameters object beyond referring the reader to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource (recompute RDARR aggregation) and labels itself a deterministic OpenChainGraph compute node of type attestation_mandate, which separates it from the scoring sibling rdarr_quality_scorecard. It stops short of explaining what RDARR aggregation actually is or how its output differs from that sibling's scorecard, so an agent still has to infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives conditional guidance for the compute parameter (auto defaults to server for gpu:false nodes with a registered kernel, browser forces delegation, gpu:true always delegates), which is genuinely usage-relevant. However it never says when to choose this tool over rdarr_quality_scorecard or when to chain parent_hashes versus run standalone, so the when-to-use question is only partially answered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rdarr_quality_scorecardRDARR Quality ScorecardC
Read-onlyIdempotent
Inspect

RDARR Quality Scorecard: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-481-rdarr-quality-scorecard.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
metricsNo
scorecardNo
not_provenNo
cutoff_dateNo
guide_versionNo
total_recordsNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior: deterministic server-side computation on Cloudflare Workers, browser delegation for gpu:true nodes, transient processing with no storage/logging/retention, and an AP2 artifact with execution_hash for provenance. The note that FV-status is a snapshot rather than a subscription is a real caveat beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode sentence is front-loaded and useful, but the definition spends disproportionate space on provenance plumbing and a long FV-status/link sentence while omitting the tool's actual subject matter. The remaining sentences earn their place, but the balance is off.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the safety profile, the description need not explain return values or reversibility. However, for a domain-specific scoring tool it should at least name what is being scored, and that core element is entirely absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters thoroughly. The description's compute:'auto'/'browser' explanation largely duplicates the enum's schema description and adds nothing about policy_parameters beyond pointing to a manifest, yielding the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('RDARR Quality Scorecard: OpenChainGraph compute node') and never says what the scorecard actually scores — no RDARR/BCBS 239 dimensions, no scoring basis. It distinguishes itself from siblings only by plumbing metadata (compute modes, AP2 export), not by function, which leaves the agent unable to tell it apart from rdarr_aggregation_recompute on substance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusion criteria, and no routing to alternatives such as rdarr_aggregation_recompute. The only directive, 'Use synthetic or anonymised inputs only', is an input constraint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_best_executionBest-Execution NBBO RecomputeA
Read-onlyIdempotent
Inspect

Best-Execution NBBO Recompute: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-541-best-execution-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
fillsNo
fill_countNo
scored_countNo
rules_versionNo
rejected_countNo
fill_set_ceilingNo
pct_at_or_betterNo
regulatory_basisNo
fill_set_truncatedNo
avg_price_improvement_bpsNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real value beyond that: inputs are processed transiently and never stored or logged, execution is deterministic, browser mode returns a delegation URL, and output is an AP2 artifact with execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the compute-mode explanation repeats the schema's own enum description almost verbatim, and the trailing FV-status sentence with a full 64-character hash URL is bloat. Several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be restated, and annotations plus the 100%-covered schema carry the parameter burden. The description fills the remaining gaps: determinism, data-handling guarantees, and chaining provenance via execution_hash.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's restatement of compute modes adds nuance but largely duplicates the schema enum docs, and it defers policy_parameters field names to an external manifest rather than explaining them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Best-Execution NBBO Recompute') and identifies it as an OpenChainGraph compute node under the analytics_mandate, so the agent knows it is a deterministic recomputation tool. It does not, however, contrast itself against the near-named sibling compute_best_execution_evidence_pack or verify_execution_hash, so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a usage constraint ('Use synthetic or anonymised inputs only') and explains the compute-mode default, which implies when each mode applies. But it never states when to choose this tool over the many sibling recompute/evidence-pack tools, nor any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_bordereauDelegated Authority Bordereau RecomputationB
Read-onlyIdempotent
Inspect

Delegated Authority Bordereau Recomputation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-508-recompute-bordereau.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so the bar is lower, yet the description still adds real behavioral context: inputs are processed transiently and not stored or logged, compute:'browser' returns a delegation URL instead of a result, gpu:true nodes always delegate, and execution produces an AP2 artifact with an execution_hash. It also warns to use synthetic or anonymised inputs only. Only return-payload shape and failure modes are left unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core operational sentences are front-loaded and useful, but the opening restates the same idea twice ('OpenChainGraph compute node' then 'Deterministic OpenChainGraph compute node'), and the trailing artifact URL plus FV-status snapshot disclaimer is provenance boilerplate that adds length without helping an agent invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully covers the output artifact (AP2 artifact with execution_hash for chain provenance) and the browser-delegation alternative, and all four parameters are documented. It is close to complete for a zero-required-parameter compute node, missing only error/failure behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description's compute-mode explanation largely restates the schema's own enum description, adding little beyond it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name identify the resource (Delegated Authority Bordereau) and the operation (recompute), and it states this is an OpenChainGraph compute node in the analytics_mandate family. However, it never explains what a bordereau recomputation actually produces or why an agent would run it, and against a large set of recompute_* siblings it offers no distinguishing detail beyond the domain label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode selection (auto/server/browser) at length, which is parameter guidance rather than tool selection guidance. There is no statement of when to choose recompute_bordereau over any sibling tool, nor any precondition for invocation beyond an input caution.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_ccd2_aprc_annex3CCD2 Annex III APRC RecomputeA
Read-onlyIdempotent
Inspect

CCD2 Annex III APRC Recompute: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-619-ccd2-aprc-annex3-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
aprc_pctNo
bracketedNo
convergedNo
total_chargeNo
num_drawdownsNo
drawdown_totalNo
num_repaymentsNo
iterations_usedNo
repayment_totalNo
residual_at_convergenceNo

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations already declaring readOnly/idempotent/non-destructive/closed-world, the description adds substantial non-obvious behavior: server-side execution on Cloudflare Workers for gpu:false nodes with registered kernels, browser delegation URLs when compute="browser" or gpu:true, transient input processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash for provenance. This is exactly the kind of context annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is a dense run-on that repeats compute-mode detail already present in the schema and appends a URL plus a long FV-status hash that is boilerplate rather than actionable guidance. It is information-rich but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema, complete parameter coverage, and rich annotations, most structural burden is met; the description appropriately supplies execution-environment, data-handling, and artifact/provenance context. Only the absence of usage routing against siblings keeps it short of complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics (auto/server/browser) that the schema already documents and says field names live in the manifest, so it adds little beyond the schema for parent_hashes, parent_tool_ids, or policy_parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening states a specific verb+resource ("recompute" the CCD2 Annex III APRC) and identifies the artifact class (OpenChainGraph compliance_mandate compute node), so the agent knows what computation is performed. It does not differentiate itself from the many sibling recompute_* tools, but the domain scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives (e.g. other CCD2 or recompute tools). The only advisory content is the compute-mode behavior and the caution to "use synthetic or anonymised inputs only," neither of which tells the agent when this tool is the right pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_ccp_default_waterfallCCP Default Waterfall RecomputationC
Read-onlyIdempotent
Inspect

CCP Default Waterfall Recomputation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-529-ccp-default-waterfall-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
stepsNo
breachNo
currencyNo
rationaleNo
provenanceNo
rejected_inputsNo
residual_displayNo
loss_amount_displayNo
loss_fully_absorbedNo
waterfall_structureNo
residual_minor_unitsNo
loss_amount_minor_unitsNo
ccp_skin_in_game_displayNo
ccp_skin_in_game_minor_unitsNo
assessment_powers_cap_declaredNo
assessment_powers_cap_minor_unitsNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent and non-destructive behavior, but the description adds real context beyond them: transient processing with no storage/logging/retention, a synthetic-or-anonymised input requirement, server-vs-browser delegation semantics, and an AP2 artifact export carrying execution_hash. These are meaningful behavioral disclosures, though it says nothing about error behavior or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is padded with infrastructure boilerplate, a landing-page URL, and an FV-status receipt hash that do not help an agent select or invoke the tool. The genuinely useful behavioral facts (no retention, compute routing, AP2 export) are buried in the middle rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compute node with a free-form nested policy_parameters object and an output schema, the agent still lacks what the recomputation computes, which manifest fields policy_parameters requires, and how the parent_hashes/parent_tool_ids pairing should be assembled. The output schema covers return values, but the input-side completeness gap remains significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail; the description merely restates the compute enum semantics. For policy_parameters it defers to 'the tool's manifest for field names' without supplying them, which adds a pointer rather than meaning. Baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening restates the name and title ('CCP Default Waterfall Recomputation: OpenChainGraph compute node'), which identifies a verb and resource but never says what the recomputation actually does — which waterfall components, which inputs, which outputs. It also fails to distinguish this tool from close siblings such as size_ccp_default_fund_cover2, recompute_payment_waterfall, or recompute_trustee_report_waterfall. Purpose is inferable from the title only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives like size_ccp_default_fund_cover2 or the other waterfall recomputes. The compute-mode text (auto/server/browser) is operational parameter guidance, not tool-selection guidance, and the synthetic-inputs note is a constraint rather than a when-to-use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_certified_payroll_pwaCertified Payroll / Prevailing Wage RecomputationB
Read-onlyIdempotent
Inspect

Certified Payroll / Prevailing Wage Recomputation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-574-certified-payroll-prevailing-wage-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
diffNo
noteNo
fenceNo
verdictNo
currencyNo
pwa_modeNo
citationsNo
rationaleNo
not_provenNo
pwa_resultNo
project_refNo
payroll_rowsNo
rejected_inputsNo
apprentice_checkNo
comparison_basisNo
week_ending_labelNo
submitted_suppliedNo
wage_determinationNo
minor_unit_exponentNo
indeterminate_reasonNo
deficient_worker_countNo
total_deficiency_displayNo
total_deficiency_minor_unitsNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent/destructive annotations by disclosing where execution happens (Cloudflare Workers vs browser delegation), that inputs are transient and not stored or logged, and that an AP2 artifact with execution_hash is exported. It does not state what the computation actually validates or returns semantically, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the identity, but is padded: 'OpenChainGraph compute node' is stated twice, and the FV-status hash plus the offline-verification sentence read as provenance boilerplate rather than invocation guidance. Much of the body could be compressed without loss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and execution/provenance behavior is covered. However the core decision function—what payroll computation is performed and what fields policy_parameters expects—is left entirely to an external manifest, which is thin for a domain-specific recompute tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute enum is already fully documented in the schema, so baseline 3 applies. The description repeats the auto/server/browser semantics already in the schema and defers policy_parameters field names to the tool manifest, adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/first line states a specific verb+resource: recomputing Certified Payroll / Prevailing Wage (PWA). It does not distinguish itself from the many other recompute_* siblings beyond the payroll domain name, and the body spends most of its text on compute plumbing rather than what the recomputation computes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage directive is 'Use synthetic or anonymised inputs only.' There is no guidance on when to call this versus other payroll/prevailing-wage or generic compute nodes, nor prerequisites for supplying policy_parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_corporate_action_entitlementCorporate Action Entitlement RecomputeB
Read-onlyIdempotent
Inspect

Corporate Action Entitlement Recompute: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-546-dtcc-ca-iso20022-validator. Open at: https://ainumbers.co/chaingraph/art-547-corporate-action-entitlement-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
violationsNo
error_countNo
reference_idNo
table_sourceNo
whole_sharesNo
table_versionNo
disambiguationNo
cash_entitlementNo
entitlement_modeNo
not_legal_adviceNo
fractional_sharesNo
entitlement_computedNo
corporate_action_typeNo
fractional_shares_presentNo
dtcc_operator_mandate_basisNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds genuinely useful behavior beyond them: transient processing with no storage/logging/retention, the auto/server/browser compute-mode semantics including browser delegation URLs, and export of an AP2 artifact bearing execution_hash for chain provenance. These are real operational traits an agent needs, though the provenance/FV-status boilerplate at the end is less about calling behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is redundant ('OpenChainGraph compute node' stated twice) and the tail buries the description in FV-status receipt-verification detail irrelevant to tool selection. The compute-mode sentence is information-dense and useful, but several clauses do not earn their place for an agent choosing the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the annotations cover safety. However, the description never states what the recompute actually decides or produces in domain terms, and policy_parameters is left to an off-tool manifest, leaving the core outcome opaque even for a zero-required-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters (compute enum, parent_hashes, parent_tool_ids, policy_parameters). The description explains the compute modes and the chaining purpose of parent hashes but adds no field-level semantics beyond what the schema states; the policy_parameters fields are deferred to an external manifest. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool an 'OpenChainGraph compute node (compliance_mandate)' and a 'Deterministic OpenChainGraph compute node,' which restates the mechanism rather than stating in domain terms what a corporate action entitlement recompute produces. It hints at scope by naming the consumed upstream artifact (art-546-dtcc-ca-iso20022-validator) but never distinguishes this from the many other recompute_* siblings in domain terms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no routing to alternatives (e.g., validate_dtcc_ca_iso20022_message, which processes the upstream artifact). The only constraint offered is the generic 'Use synthetic or anonymised inputs only,' which is an input hygiene rule, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_csdr_penaltyCSDR Penalty Recompute (Caller Reference Price)B
Read-onlyIdempotent
Inspect

CSDR Penalty Recompute (Caller Reference Price): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-543-csdr-penalty-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
decisionNo
fail_countNo
recompute_idNo
determinationsNo
rejected_inputsNo
rate_table_versionNo
total_penalty_exposureNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description adds real behavioral context: deterministic computation, that gpu:false nodes default to Cloudflare Workers server-side, browser delegation behavior, and that inputs are processed transiently and never stored or logged. It also discloses the AP2 artifact + execution_hash export, which the annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening line is front-loaded with the tool's identity, but the body repeats determinism and compute-node framing and closes with a very long FV-status hash URL, which is bulk without much agent value. Some sentences (transient processing, browser delegation) earn their place; the provenance boilerplate is verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the execution/provenance model is thoroughly covered. What is missing is the domain substance: what penalty calculation is being recomputed and what policy_parameters should contain, both of which are deferred elsewhere for a compliance-critical tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 100%, the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's only parameter content restates the compute-mode behavior already in the schema and punts policy_parameters to 'the tool's manifest for field names', so it adds no meaning beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title states a verb+resource (recompute CSDR penalty) and the description identifies it as a compliance_mandate compute node that exports an AP2 artifact, so the basic purpose is legible. However, the body is dominated by OpenChainGraph infrastructure prose rather than penalty semantics, and it never distinguishes this tool from the sibling calculate_csdr_penalty, leaving the agent unable to tell the two apart from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute modes and states 'Use synthetic or anonymised inputs only', which is a constraint but not selection guidance. It never says when to reach for this tool versus calculate_csdr_penalty or the other recompute_* siblings, so the agent must infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_erc4337_userop_mathERC-4337 UserOperation MathB
Read-onlyIdempotent
Inspect

ERC-4337 UserOperation Math: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-613-erc4337-userop-math.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonsNo
user_opNo
verdictNo
chain_idNo
scope_noteNo
entry_pointNo
field_hashesNo
packed_wordsNo
user_op_hashNo
never_fetchedNo
gas_accountingNo
packed_user_op_hashNo
paymaster_reconciliationNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent/non-destructive annotations, the description adds real behavioral context: inputs are processed transiently and not stored/logged/retained, the node exports an AP2 artifact with execution_hash for provenance, and gpu:true nodes always delegate. These are meaningful guarantees an agent needs and are not in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and compute/transiency facts are reasonably front-loaded, but the trailing FV-status URL and 'a snapshot, not a subscription; this receipt verifies offline...' sentence are dense boilerplate that dilutes the useful content for an agent deciding how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it covers transiency, artifact export, and compute-mode behavior. Combined with 100% schema coverage and clear annotations, it is nearly complete for calling the tool correctly, lacking only the substantive scope of the math itself.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents compute modes, parent_hashes/parent_tool_ids chaining, and policy_parameters. The description largely repeats the compute-mode semantics and adds nothing about the chaining or policy_parameters fields, so it earns only the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening 'ERC-4337 UserOperation Math: OpenChainGraph compute node (payment_policy)' mostly restates the name and title, identifying the resource but never stating what the UserOperation math actually computes or returns. It is distinguishable as part of the recompute_*_math family, but an agent cannot tell what the recomputation covers from the prose alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the compute modes (auto/server/browser, gpu:true always delegates) and warns to use synthetic or anonymised inputs, which implies usage conditions. However, it gives no explicit when-to-use guidance versus sibling recompute tools and no when-not criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_erc4626_vault_share_mathERC-4626 Vault Share MathB
Read-onlyIdempotent
Inspect

ERC-4626 Vault Share Math: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-610-erc4626-vault-share-math.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
feeNo
noteNo
reasonsNo
rate_driftNo
round_tripNo
conversionsNo
vault_stateNo
rounding_tableNo
declared_contextNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnlyHint/idempotent/non-destructive, the description adds real value beyond them: transient processing with no storage or logging, an AP2 artifact export carrying execution_hash for chain provenance, and the server-vs-browser delegation rule for gpu:true nodes. It does not contradict the readOnly annotation, and the execution-model disclosure is genuinely useful context an agent could not get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with boilerplate ('OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node' — the second sentence repeats the first) and an FV-status receipt URL plus caveat that consume space a calling agent does not need. The scoping/compute information is front-loaded, but several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the execution/privacy model is covered thoroughly. However, for a zero-required-parameter compute tool the description omits the substantive semantics of the calculation itself (what share math is recomputed, rounding convention), leaving a real gap for a tool of this name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description repeats the compute-mode semantics almost verbatim from the schema and adds no field-level meaning for policy_parameters beyond 'see the tool's manifest'. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name states a specific verb and resource (recompute ERC-4626 vault share math), but the description body opens by restating the title and then spends its sentences on OpenChainGraph compute-node infrastructure rather than saying what the math actually is (share/asset conversion, rounding direction, decimals handling). It never distinguishes itself from siblings like recompute_erc4337_userop_math or recompute_erc7540_request_accounting beyond the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives or when the recomputation is appropriate (e.g., after a vault deposit/withdraw, for audit verification). The compute-mode text is parameter-level behaviour, not usage guidance, and the conditions given are about execution venue rather than task selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_erc7540_request_accountingERC-7540 Async-Vault Request AccountingC
Read-onlyIdempotent
Inspect

ERC-7540 Async-Vault Request Accounting: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-611-erc7540-async-vault-request-accounting.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dustNo
noteNo
claimsNo
closingNo
openingNo
reasonsNo
invariantsNo
request_idNo
declared_contextNo
claim_rounding_usedNo
aggregate_by_controllerNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior: inputs are processed transiently and not stored, logged, or retained; compute:'auto' runs server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:'browser' returns a delegation URL; gpu:true nodes always delegate. It also notes the tool exports an AP2 artifact carrying execution_hash for chain provenance. These traits are not derivable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the tool identity, which is good, but the opening repeats itself ('...compute node (payment_policy). Deterministic OpenChainGraph compute node.') and the trailing FV-status/receipt prose and raw URLs are verbose and low-signal for an agent choosing a tool. Several sentences do earn their place (compute modes, data handling), but the block is uneven.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values needn't be explained, and annotations cover safety; the description adequately covers execution modes and data handling. What is missing is the actual computational subject matter and any guidance on shaping policy_parameters beyond a pointer to an external manifest, leaving the core 'what do I pass to get ERC-7540 request accounting' question open.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute modes, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation largely duplicates the schema's own 'compute' description, and it says nothing about parent_tool_ids or how to populate policy_parameters ('See the tool's manifest'). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the title ('ERC-7540 Async-Vault Request Accounting') and then pivots immediately to generic compute-node machinery ('OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node.'). It never says what ERC-7540 request accounting actually computes (deposit/redeem request lifecycle, claimable amounts, etc.), nor does it distinguish this tool from the closely-named sibling recompute_erc4626_vault_share_math. Purpose is identifiable only from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage directive is 'Use synthetic or anonymised inputs only,' which constrains input data rather than selecting among tools. There is no statement of when to reach for this versus recompute_erc4626_vault_share_math or any other recompute_* sibling, and no prerequisites (e.g., required parent hashes).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_exchange_fee_tier_invoiceExchange Access-Fee / Maker-Taker Tier RecomputeC
Read-onlyIdempotent
Inspect

Exchange Access-Fee / Maker-Taker Tier Recompute: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-577-exchange-fee-tier-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tiersNo
decisionNo
findingsNo
cap_checkNo
scope_noteNo
active_tierNo
cap_verdictNo
clause_noteNo
diff_microsNo
invoice_periodNo
volume_summaryNo
invoice_verdictNo
rejected_inputsNo
fee_schedule_summaryNo
claimed_invoice_microsNo
prior_period_adv_sharesNo
recomputed_invoice_microsNo
recompute_tolerance_microsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds real operational context: inputs are processed transiently and not stored/logged, synthetic or anonymised inputs are required, the node is deterministic, and the output is an AP2 artifact carrying execution_hash for provenance. The compute auto/browser/gpu delegation behavior is repeated from the schema, but the privacy and provenance disclosures are genuine value-add.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text leads with a title restatement and then repeats itself ("OpenChainGraph compute node ... Deterministic OpenChainGraph compute node"). It pads the payload with a landing-page URL and a 64-character FV-status hash plus a disclaimer about snapshots versus subscriptions that is irrelevant to invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations plus the schema cover modes and chaining inputs. What is missing is any statement of the domain logic being recomputed (fee tiers, maker-taker rate application), which is the one thing an agent cannot derive from structured fields. Adequate but with a clear substantive gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode semantics without adding syntax or constraints beyond the schema, and says nothing about policy_parameters contents beyond pointing at the manifest (which the schema already does). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ("Exchange Access-Fee / Maker-Taker Tier Recompute") and labels it a deterministic OpenChainGraph compute node, so an agent can tell roughly what it does. However, the opening sentence only restates the title and never explains what the recompute actually produces (tier assignment, invoice restatement, rate reconciliation), so it adds little beyond the name. It also gives no differentiation from the many sibling recompute_* tools (e.g. recompute_stock_loan_rebate_fee, compute_odnsf_fee_recompute).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no reference to any alternative tool. The only conditional language concerns the compute mode parameter, which is invocation mechanics rather than tool-selection guidance. An agent is left to infer applicability from the title alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_fund_feesRecompute Fund FeesB
Read-onlyIdempotent
Inspect

Recompute Fund Fees: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-511-recompute-fund-fees.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
diffNo
as_ofNo
fenceNo
fund_idNo
roundingNo
rationaleNo
not_provenNo
period_endNo
period_daysNo
period_startNo
agreement_refNo
terms_versionNo
recompute_onlyNo
performance_feeNo
judgment_requiredNo
management_fee_computedNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, but the description adds meaningful context beyond them: deterministic execution, server-side vs browser delegation semantics for compute modes, transient non-stored processing of inputs, and export of an AP2 artifact carrying execution_hash for provenance. It does not cover failure modes, rate limits, or what the response actually contains, but it substantially exceeds the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Roughly half the text is genuinely useful (compute-mode behavior, transient processing, artifact/provenance), but it opens with a redundant restatement ("OpenChainGraph compute node" twice) and closes with an FV-status hash plus a snapshot-offline disclaimer that is not front-loaded and adds little for invocation decisions. Mixed efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, for a tool whose real payload is policy_parameters (a free-form nested object), the description defers field names to "the tool's manifest," leaving the agent without the information needed to construct a valid call. Compute and chaining behavior are adequately covered; the core input semantics are not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented with enum meaning and chaining semantics. The description echoes the compute:auto default without adding syntax or examples, and punts the key policy_parameters field names to an external manifest. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause names a verb and resource (Recompute Fund Fees) and labels the tool as an OpenChainGraph compute node for the analytics_mandate domain. But beyond that label it never says what fund-fee computation actually entails (which fee components, which inputs feed the decision function), so an agent cannot distinguish it from siblings like recompute_fund_nav or compute_fund_expense_ratios. Purpose is identifiable but not differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when this tool should be chosen over the many sibling recompute_* tools. The only usage-like guidance is an input constraint ("Use synthetic or anonymised inputs only") and compute-mode selection mechanics, neither of which tells the agent when to reach for this tool rather than an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_fund_navRecompute Fund NAVB
Read-onlyIdempotent
Inspect

Recompute Fund NAV: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-373-recompute-fund-nav.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
fund_idNo
roundingNo
componentsNo
not_provenNo
base_currencyNo
nav_per_shareNo
valuation_dateNo
structural_errorNo
regulatory_frameworkNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety bar is met. The description usefully adds that inputs are processed transiently and not stored/logged/retained, that execution is deterministic, and that an AP2 artifact with execution_hash is exported for chain provenance — genuine context beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with redundancy ('OpenChainGraph compute node' restated as 'Deterministic OpenChainGraph compute node') and a long 64-hex FV-status hash URL plus snapshot caveats that are low-value for tool selection. The domain-relevant content is buried behind boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and rich annotations present, the description need not cover return values or safety. It does cover data-handling and provenance, but omits any NAV-specific semantics (what the recomputation consumes or validates), leaving the agent adequate but not fully informed for this particular node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including the compute enum and parent hashes) are already documented in the schema. The description largely restates the compute-mode semantics and defers policy_parameters to 'the tool's manifest', adding no field-level meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title state a verb and resource (recompute fund NAV), but the description spends nearly all its words on generic compute-node infrastructure (compute modes, provenance, FV-status URL) rather than the NAV-specific function. It reads as a boilerplate template applied to the node, adding little domain distinction from siblings like recompute_fund_fees or compile_nav_error_evidence_pack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational guidance on compute modes (auto/server/browser) and a precondition to use synthetic/anonymised inputs only. However it never states when to choose this over a sibling (e.g., test_nav_error_materiality or publish_fund_nav_head), so alternative selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_garnishment_stackMulti-Garnishment Stacking RecomputationB
Read-onlyIdempotent
Inspect

Multi-Garnishment Stacking Recomputation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-572-multi-garnishment-stacking-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
diffNo
noteNo
fenceNo
ordersNo
verdictNo
currencyNo
citationsNo
rationaleNo
not_provenNo
order_countNo
employee_refNo
period_labelNo
gross_displayNo
state_overlayNo
rejected_inputsNo
comparison_basisNo
noticed_suppliedNo
gross_minor_unitsNo
ccpa_floor_displayNo
minor_unit_exponentNo
employee_net_displayNo
indeterminate_reasonNo
aggregate_cap_displayNo
ccpa_floor_minor_unitsNo
total_withheld_displayNo
employee_net_minor_unitsNo
first_uncapped_shortfallNo
total_deductions_displayNo
aggregate_cap_minor_unitsNo
total_withheld_minor_unitsNo
disposable_earnings_displayNo
federal_minimum_wage_sourceNo
legally_required_deductionsNo
federal_minimum_wage_displayNo
total_deductions_minor_unitsNo
disposable_earnings_minor_unitsNo
federal_minimum_wage_minor_unitsNo
disposable_earnings_floored_at_zeroNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the bar is lower; the description nonetheless adds real behavioral facts: inputs are processed transiently and not stored or logged, gpu:true nodes always delegate to the browser, and the tool exports an AP2 artifact with execution_hash for provenance. It does not, however, describe what the computation actually does or any auth/rate-limit considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front-loaded title is good, but the body is padded with boilerplate (the repeated 'Deterministic OpenChainGraph compute node', the artifact HTML URL, and the FV-status snapshot receipt with an offline-verification note) that does not help an agent invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so return values and side effects need not be re-explained. However, for a decision-compute tool whose main payload is a free-form nested policy_parameters object, the description defers field semantics to an external manifest, leaving an agent without the domain detail needed to supply inputs correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, so the baseline is 3. The description repeats the compute-mode semantics and points elsewhere for policy_parameters field names ('See the tool's manifest'), adding no new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line say it is a 'Multi-Garnishment Stacking Recomputation' OpenChainGraph compute node, which names a resource and an action, but the body never explains what 'recomputation' covers (e.g. stacking order, priority caps, deduction limits) or what the decision function decides. For an agent choosing among dozens of compute_*/recompute_* siblings, the description does not differentiate this tool beyond a domain label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives, no prerequisites, and no conditions under which it should not be used. The only routing-like content is about compute mode ('auto'/'browser'/'server'), which is an execution detail rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_lease_schedule_asc842_ifrs16Lease Schedule Recompute — ASC 842 / IFRS 16C
Read-onlyIdempotent
Inspect

Lease Schedule Recompute — ASC 842 / IFRS 16: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-571-lease-schedule-recompute-asc842-ifrs16.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
diffNo
asc842No
ifrs16No
verdictNo
decisionNo
findingsNo
electionsNo
scope_noteNo
clause_noteNo
rejected_inputsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, but the description adds real behavioral context: deterministic execution, server-side vs browser delegation semantics, transient input processing with no retention/logging, and export of an AP2 artifact carrying execution_hash. The FV-status note also clarifies that the receipt validates offline, which is useful provenance behavior. It loses a point for overlapping heavily with the compute field already documented in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is reasonably front-loaded with the tool identity, but a large fraction of the text is node-infrastructure boilerplate (compute binding, AP2 export, FV-status receipt) that is repeated across this family and partly duplicates the compute parameter's own schema description. The domain-relevant content is a single clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but for a compliance recompute node the description omits what the recompute accomplishes, which policy_parameters drive it, and what a 'lease schedule' result contains. Given four parameters with a nested, undocumented object, this is materially under-specified for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains compute, parent_hashes, parent_tool_ids and policy_parameters, establishing a baseline of 3. The description adds no parameter-level meaning and, notably, leaves policy_parameters field names deferred to an external manifest that is not linked, so it does not compensate for the opaque additionalProperties object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause names a verb and resource ('Lease Schedule Recompute — ASC 842 / IFRS 16') and labels it a compliance_control compute node, so the domain is identifiable. However, beyond restating the title it never explains what the recompute actually does (lease liability/ROU remeasurement, inputs consumed, results produced), and it makes no attempt to distinguish itself from the many sibling recompute_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when this tool should be selected versus alternatives such as compute_deterministic_amortization_schedule or other recompute_* nodes. The only usage-like instruction, 'Use synthetic or anonymised inputs only,' is a data-handling constraint rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_mla_mapr_actuarialMLA MAPR Actuarial RecomputeB
Read-onlyIdempotent
Inspect

MLA MAPR Actuarial Recompute: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-616-mla-mapr-actuarial-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
mapr_pctNo
bracketedNo
convergedNo
iterationsNo
exceeds_capNo
mapr_cap_pctNo
num_advancesNo
num_paymentsNo
advance_totalNo
payment_totalNo
periodic_rateNo
charge_breakdownNo
periods_per_yearNo
regulatory_basisNo
amount_financed_maprNo
manual_review_requiredNo
prepaid_included_totalNo
finance_charge_in_schedule_totalNo
participation_fee_open_end_no_balance_limit_usdNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive/closed-world, but the description adds substantive traits beyond that: inputs are processed transiently and not stored, logged, or retained, an AP2 artifact with execution_hash is exported for chain provenance, and the FV-status receipt verifies offline. That is meaningful behavioral disclosure a caller could not infer from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool's scope is front-loaded in the first clause, which is good. But the paragraph is padded with infrastructure boilerplate and a long FV-status URL plus a 64-char hash that do not help an agent select or invoke the tool, diluting the signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a fully covered schema, and an output schema, the definition only needs to cover execution model and provenance, which it does. It remains incomplete on the core question of what the recompute actually produces and why to choose it over compute_mla_mapr, leaving a substantive gap for a compliance computation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description largely restates the compute enum semantics already in the schema and gives no additional guidance on parent_hashes/parent_tool_ids ordering or how policy_parameters fields are resolved ('see the tool's manifest'). It adds little beyond structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (recompute) and resource (MLA MAPR actuarial) and tags the node as compliance_mandate, so a reader knows it recomputes an MLA MAPR actuarial figure. However, it never explains what MLA MAPR is or how this differs from the very close sibling compute_mla_mapr, and most of the text is execution-plumbing rather than purpose. Adequate but with a clear differentiation gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real usage context: default compute:'auto' runs server-side, compute:'browser' returns a delegation URL, gpu:true always delegates, and inputs must be synthetic/anonymised. What it never states is when to use this recompute node versus compute_mla_mapr or classify_mla_charge_inclusion, so the when-to-use decision is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_payment_waterfallSecuritisation Payment Waterfall RecomputationB
Read-onlyIdempotent
Inspect

Securitisation Payment Waterfall Recomputation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-510-build-art5-diligence-evidence. Open at: https://ainumbers.co/chaingraph/art-509-recompute-payment-waterfall.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
diffNo
noteNo
basisNo
stepsNo
currencyNo
deal_refNo
citationsNo
rationaleNo
ladder_refNo
step_countNo
period_labelNo
test_resultsNo
rejected_inputsNo
comparison_basisNo
comparison_stateNo
residual_displayNo
no_template_claimNo
residual_by_ledgerNo
total_paid_displayNo
asserted_step_countNo
first_unfunded_stepNo
minor_unit_exponentNo
recompute_only_noteNo
residual_minor_unitsNo
recomputed_step_countNo
total_paid_minor_unitsNo
total_available_displayNo
total_shortfall_displayNo
available_funds_by_ledgerNo
total_available_minor_unitsNo
total_shortfall_minor_unitsNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false), but the description adds genuinely non-structured behavior: inputs are processed transiently and not stored, logged, or retained, an AP2 artifact with execution_hash is exported, and compute delegation semantics for gpu:true nodes. The compute-mode paragraph largely duplicates the schema's compute enum description, which holds it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is reasonably front-loaded, but the body is padded with infrastructure boilerplate and trailing metadata (an external URL plus a long FV-status hash and a sentence explaining that the receipt is 'a snapshot, not a subscription') that does nothing to help an agent select or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the platform semantics (compute modes, privacy, provenance) are well covered. What is missing is the domain substance: what the waterfall actually computes and what valid policy_parameters look like, which matters for a complex securitisation tool with an effectively unspecified nested input object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics that the schema already documents, and defers policy_parameters field names entirely to 'the tool's manifest,' adding no meaning beyond the schema for the most opaque parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title plus first line state a specific verb+resource: recomputing a securitisation payment waterfall. However, the body is almost entirely platform/compute-node boilerplate and never describes the actual waterfall logic or the priority-of-payments domain, and it does nothing to separate this from sibling waterfall tools such as recompute_ccp_default_waterfall, recompute_trustee_report_waterfall, and recompute_loan_servicing_waterfall_recompute.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no routing to alternatives among the many waterfall recompute siblings. The only usable directive is the constraint 'Use synthetic or anonymised inputs only,' which is a precondition rather than a selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_pe_waterfall_lpPE Distribution Waterfall LP-Side RecomputeC
Read-onlyIdempotent
Inspect

PE Distribution Waterfall LP-Side Recompute: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-567-pe-waterfall-lp-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
deal_idNo
fund_idNo
verdictNo
clawbackNo
per_dealNo
waterfallNo
as_of_dateNo
not_provenNo
tier_deltasNo
ilpa_contextNo
tier_structureNo
rejected_inputsNo
recomputed_allocationNo
gp_reported_allocationNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/non-destructive, so the safety profile is covered; the description still adds real value beyond them by disclosing transient processing with no retention or logging, the server-vs-browser delegation behavior, gpu:true always delegating, and export of an AP2 artifact with execution_hash for provenance. It stops short of describing determinism guarantees against policy_parameters or failure modes, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first half of the description is marketing/boilerplate (OpenChainGraph branding, Cloudflare Workers, FV-status snapshot URL and hash) that crowds out the functional statement. The FV-status sentence in particular is a long, low-signal tail that does not help an agent decide or invoke.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich annotations, the description need not explain return values, and it covers compute delegation and provenance export. However, for a specialized financial-waterfall compute node it never explains the decision function or what policy_parameters are expected, leaving the core invocation contract partially unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description only restates the compute-mode enum behavior and adds nothing about what policy_parameters must contain (it defers to 'the tool's manifest'), so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ('PE Distribution Waterfall LP-Side Recompute') and classifies it as a 'deterministic OpenChainGraph compute node (attestation_mandate)', but it largely restates the title rather than stating in functional terms what the recompute produces (e.g., LP distribution tiers, waterfall allocations). An agent knows it is a deterministic compute node, but not what it actually computes, so it sits at vague-purpose level despite the specific name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling waterfal/recompute tools (recompute_payment_waterfall, recompute_ccp_default_waterfall, recompute_trustee_report_waterfall). The compute:'auto'/'browser' text explains execution mode, not task selection, so it does not substitute for usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_section16b_profitSection 16(b) Short-Swing Profit RecomputationB
Read-onlyIdempotent
Inspect

Section 16(b) Short-Swing Profit Recomputation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-573-section16b-short-swing-profit-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
fenceNo
verdictNo
currencyNo
citationsNo
rationaleNo
issuer_refNo
not_provenNo
sale_countNo
insider_refNo
matched_pairsNo
insider_statusNo
purchase_countNo
rejected_inputsNo
comparison_basisNo
transaction_countNo
difference_displayNo
minor_unit_exponentNo
indeterminate_reasonNo
total_profit_displayNo
excluded_transactionsNo
unmatched_sale_sharesNo
demand_letter_suppliedNo
difference_minor_unitsNo
total_profit_minor_unitsNo
usable_transaction_countNo
section_16a_applicabilityNo
unmatched_purchase_sharesNo
six_month_window_day_thresholdNo
demand_letter_claimed_profit_displayNo
demand_letter_claimed_profit_minor_unitsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description still adds real behavioural context beyond that: deterministic execution, server-side vs browser-delegated compute modes, GPU nodes always delegating, transient non-persisted inputs, and export of an AP2 artifact carrying execution_hash for provenance. This is meaningful operational disclosure, though much of it is boilerplate shared by every OpenChainGraph node rather than specific to this computation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The relevant content (title, compute modes, transient-input policy, artifact export) is front-loaded and reasonably compact, but the tail includes a long documentation URL and a 64-hex FV-status receipt path that an agent cannot use for tool selection and that pad the definition noticeably.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute-node mechanics are covered. What is missing for a tool with a nested free-form policy_parameters object is any indication of the decision-function inputs this specific computation requires, which is instead deferred to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; the baseline is 3. The description's compute-mode sentence largely duplicates the schema's own compute description, and it adds nothing about which fields the deferred policy_parameters object expects beyond pointing at 'the manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and opening phrase identify a specific verb and resource (Section 16(b) short-swing profit recomputation), so the agent can tell it is an analytics recompute rather than a validation or lint tool. But the description immediately pivots into generic OpenChainGraph compute-node boilerplate and never explains what the computation does (e.g., disgorgement of insider profits from matched purchases/sales within six months) or how it differs from siblings like recompute_stock_loan_rebate_fee. Purpose is stated but under-developed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, no alternative tool named, and no prerequisite described. The compute:"auto"/"browser" discussion is invocation mechanics, not a selection guideline, and the only directive ('use synthetic or anonymised inputs') is an input-safety note rather than usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_stablecoin_reserve_3sourceStablecoin Reserve 3-Source RecomputeC
Read-onlyIdempotent
Inspect

Stablecoin Reserve 3-Source Recompute: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-603-stablecoin-reserve-3source-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
wamNo
leg_aNo
leg_bNo
leg_cNo
not_provenNo
reconcilesNo
reserve_ratioNo
as_of_skew_pairsNo
determination_noteNo
regulatory_frameworkNo
overall_determinationNo
provisional_nprm_detailNo
genius_eligible_holdingsNo
as_of_skew_threshold_daysNo
max_as_of_skew_days_globalNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the bar is lower, and the description genuinely adds: transient processing with no storage/logging/retention, deterministic execution, browser-delegation behavior for gpu:true, and export of an AP2 artifact carrying execution_hash for provenance. That is real context beyond the structured fields, though it is boilerplate-heavy.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long and poorly front-loaded, leading with a redundant title-restatement and a repeated boilerplate sentence ('Deterministic OpenChainGraph compute node'), then burying useful details behind an HTML URL and a 64-character FV-status hash. Several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and full annotations present, the description covers compute modes, data-handling policy, and provenance export adequately. The significant remaining gap is what the tool actually computes and what fields policy_parameters expects, which it waves off to an external manifest — a core completeness shortfall for a compute node with 0 required and 4 total parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation duplicates the schema's, and it defers policy_parameters fields to 'the tool's manifest' without adding semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title and then talks about infrastructure ('OpenChainGraph compute node (compliance_mandate)', 'Deterministic OpenChainGraph compute node') rather than what the recompute actually does. It never explains what a '3-source' stablecoin reserve recompute produces or how it differs from siblings like simulate_stablecoin_reserve, precheck_reserve_attestation, or verify_reserve_proof. What little purpose signal exists comes from the name/title, not the body text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives value-level guidance for one parameter ('compute:auto' vs 'browser') and a data-handling rule ('Use synthetic or anonymised inputs only'), but never says when to choose this tool over the many reserve/settlement siblings. There are no exclusions or alternative-selection cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_stock_loan_rebate_feeStock-Loan Rebate/Fee RecomputeB
Read-onlyIdempotent
Inspect

Stock-Loan Rebate/Fee Recompute: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-579-stock-loan-rebate-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
loansNo
verdictNo
decisionNo
findingsNo
loan_countNo
scope_noteNo
clause_noteNo
rejected_inputsNo
statement_periodNo
required_margin_pctNo
diff_tolerance_minorNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false), but the description adds genuinely new behavior: transient input processing with no storage/logging/retention, a synthetic-inputs-only constraint, server-vs-browser delegation rules (gpu:true always delegates, compute:'browser' returns a delegation URL), and an AP2 artifact export with execution_hash. That is meaningful context beyond the structured fields, though the compute-mode text duplicates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Ordering is sensible (purpose, mode rules, privacy, provenance, receipt), but the opening sentence is duplicated ('OpenChainGraph compute node' appears twice) and the verbatim compute-mode rules restate the schema. The long URL plus 64-hex FV-status filename consume space without helping an agent select or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Safety annotations and an output schema are present, so those need not be re-explained, and privacy/provenance behavior is covered. The significant remaining gap is that the description never says what domain inputs belong in the free-form policy_parameters object, which is what an agent must supply to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail; baseline 3 applies. The description's compute-mode prose merely repeats the schema's own compute description and adds no syntax or example for the free-form policy_parameters object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line restates the title ('Stock-Loan Rebate/Fee Recompute') and adds only a platform classification ('OpenChainGraph compute node (compliance_control)'), so the reader learns it is a deterministic recompute node but not what the rebate/fee computation actually entails. Among dozens of recompute_* siblings there is no differentiation, so an agent cannot tell why it would pick this over recompute_mlr_rebate or compute_stock_token_collateral_haircut. Purpose is identifiable but thin.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, no prerequisites, and no named alternative. The only selection-ish content is compute-mode routing, which is a parameter concern rather than a usage condition. Usage is implied only by the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_tmpg_fails_chargeTMPG Fails-Charge RecomputeB
Read-onlyIdempotent
Inspect

TMPG Fails-Charge Recompute: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-575-tmpg-fails-charge-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
decisionNo
fail_countNo
scope_noteNo
clause_noteNo
determinationsNo
rejected_inputsNo
diff_tolerance_minorNo
total_claimed_charge_minorNo
total_recomputed_charge_minorNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it read-only, idempotent, closed-world and non-destructive, so the safety bar is low. The description still adds real value: it discloses that inputs are processed transiently and never stored, logged, or retained, that execution is deterministic, and that an AP2 artifact with execution_hash is exported for provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core operational facts are front-loaded, but the passage is bloated with boilerplate (deterministic-node phrasing repeated, an HTML URL, and a long FV-status receipt path) that an agent invoking the tool gains little from. Every sentence does not clearly earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it does cover the two things an agent genuinely needs: compute-mode behavior and the provenance/privacy contract. Only the substantive purpose of the recomputation itself remains under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's discussion of compute modes and chaining largely restates the schema, adding no syntax or format detail beyond it; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names a verb (recompute) and a subject (TMPG fails-charge) and labels itself a 'compliance_control' OpenChainGraph compute node, but it never explains what the recomputation actually computes or what domain concept a 'TMPG fails charge' is. Among dozens of recompute_* siblings, the agent can only distinguish this by the literal string, not by understanding its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the compute-mode mechanics (auto/server/browser) and warns to use synthetic inputs, but never says when to select this tool over any sibling, nor names prerequisites or an alternative. The compute-mode guidance duplicates the parameter schema rather than providing tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_trustee_report_waterfallSecuritization Trustee-Report Waterfall RecomputationC
Read-onlyIdempotent
Inspect

Securitization Trustee-Report Waterfall Recomputation: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-568-securitization-trustee-report-recompute.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
diffNo
noteNo
fenceNo
tiersNo
verdictNo
currencyNo
deal_refNo
citationsNo
rationaleNo
not_provenNo
tier_countNo
period_labelNo
indenture_refNo
rejected_inputsNo
comparison_basisNo
residual_by_typeNo
residual_displayNo
skipped_tier_countNo
total_paid_displayNo
triggers_evaluatedNo
collections_by_typeNo
first_unfunded_tierNo
minor_unit_exponentNo
indeterminate_reasonNo
residual_minor_unitsNo
total_paid_minor_unitsNo
total_shortfall_displayNo
total_collections_displayNo
trustee_reported_suppliedNo
total_shortfall_minor_unitsNo
total_collections_minor_unitsNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, openWorld=false, non-destructive), the description discloses substantive behavior: deterministic execution, server-side vs browser delegation with URL return, transient input processing with no storage/logging/retention, and an AP2 artifact export carrying execution_hash. This goes meaningfully past what the annotations state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by deployment meta-information (Cloudflare Workers, delegation URLs, an example URL, an FV-status JSON path and hash) that crowds out the actual analytic purpose. It is not front-loaded around the task the agent would invoke it for, and several sentences carry no invocation value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool whose core input (policy_parameters) drives a decision function, the description supplies no field-level guidance and defers entirely to an external manifest, so an agent cannot construct a meaningful call from the definition alone. The artifact/output side is acknowledged (and an output schema exists), but the domain-input half of the contract is left open.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's explanation of compute modes matches and slightly expands the schema's own compute description, but adds nothing for parent_hashes/parent_tool_ids beyond the schema, and explicitly punts on policy_parameters ("See the tool's manifest for field names"), providing no extra meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title verbatim ("Securitization Trustee-Report Waterfall Recomputation"), which is a tautology rather than an explanation. It never states what the recomputation actually calculates (e.g., distribution priorities, tranche payouts, trustee-report cash flows) nor distinguishes it from siblings like recompute_payment_waterfall, recompute_ccp_default_waterfall, or compute_loan_servicing_waterfall_recompute. The remaining text is about execution infrastructure, not the tool's domain purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on the compute mode ("auto" vs "browser") which is effectively parameter usage, but nothing on when to choose this tool over any of the many other waterfall/recompute siblings. No preconditions, no scenario, no exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recompute_x402_eip712_digestx402 EIP-712 Digest RecomputerB
Read-onlyIdempotent
Inspect

x402 EIP-712 Digest Recomputer: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-591-x402-signer-recovery-verifier. Open at: https://ainumbers.co/chaingraph/art-590-x402-eip712-digest-recomputer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
digestNo
domainNo
reasonsNo
verdictNo
scope_noteNo
struct_hashNo
authorizationNo
domain_typehashNo
domain_separatorNo
transfer_with_authorization_typehashNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description still adds real behavior: transient processing with no storage/logging/retention, deterministic output, an AP2 artifact carrying execution_hash for chain provenance, and the browser-delegation-URL return path for compute:'browser' or gpu:true nodes. It stops short of saying what the returned digest/artifact looks like to the caller.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening redundantly restates the title, then repeats 'OpenChainGraph compute node' twice in consecutive sentences. It is padded with a documentation URL and a raw 64-hex FV-status path plus a sentence defending that receipt, all of which dilute the core, useful content (compute modes, transience, downstream consumer).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be documented, and execution semantics (compute modes, data handling, downstream artifact) are covered. But the tool's primary payload — policy_parameters for the decision function — is documented nowhere except an off-page manifest, and with zero required parameters the description never explains the default invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description only restates compute modes and does not explain parent_hashes/parent_tool_ids ordering or, critically, what keys policy_parameters expects (the schema defers that to an external manifest). No added meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title pair ('recompute_x402_eip712_digest') plus the opening line state a specific verb and resource: deterministically recomputing the x402 EIP-712 typed-data digest. It is distinguishable from siblings like decode_x402_payment or verify_x402_signer_recovery, though the description never spells out that distinction or what the recomputed digest is derived from.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies contextual routing ('Output feeds: art-591-x402-signer-recovery-verifier') and an input constraint ('Use synthetic or anonymised inputs only'), plus the compute-mode rules. However, there is no explicit when-to-use/when-not-to-use guidance against siblings such as verify_x402_signer_recovery or check_x402_domain_nonce_window.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconcile_aml_lookback_completenessAML Lookback Completeness ReconcilerC
Read-onlyIdempotent
Inspect

AML Lookback Completeness Reconciler: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-470-lookback-completeness-reconciler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
periodsNo
gap_periodsNo
period_countNo
lookback_statusNo
overall_coverage_pctNo
unverifiable_periodsNo
total_duplicate_countNo
verifiable_source_countNo
verifiable_extract_countNo
total_source_record_countNo
total_extract_record_countNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description adds genuine behavioral facts: the node is deterministic, inputs are processed transiently and never stored or logged, outputs are exported as an AP2 artifact carrying execution_hash for chain provenance, and the FV-status receipt verifies offline. It does not cover error behavior or what a failed reconciliation looks like, but the data-handling and provenance disclosure is substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense run-on of template clauses; the purpose statement is buried inside a colon-appended restatement of the title rather than front-loaded. It is not bloated with redundant sentences, but the URL and long hash reduce scannability for the key facts.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, for a 4-parameter compliance compute node whose policy_parameters are untyped ('see the tool's manifest'), the description leaves the actual decision function and its inputs entirely opaque, which is a real completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description only paraphrases the 'compute' enum already fully documented in the schema, and says nothing about parent_hashes/parent_tool_ids chaining or policy_parameters; it explicitly punts field names to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The text largely restates the name and title: "AML Lookback Completeness Reconciler: OpenChainGraph compute node (compliance_control)". It never says what 'completeness reconciliation' actually computes (e.g., whether lookback transaction populations reconcile against dispositions or source extracts), so an agent cannot distinguish it from siblings like roll_up_aml_lookback_disposition or plan_aml_disposition_sample.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative-tool guidance anywhere in the description. The only routing information ('auto' vs 'browser' compute) is invocation mechanics already documented in the schema, not selection guidance among the many AML/reconciliation siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconcile_commission_statementCommission Statement ReconcilerB
Read-onlyIdempotent
Inspect

Commission Statement Reconciler: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-264-validate-commission-hierarchy. Output feeds: art-265-amortize-asc606-commissions. Open at: https://ainumbers.co/chaingraph/art-266-reconcile-commission-statement.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
line_countNo
line_resultsNo
table_sourceNo
total_statedNo
table_versionNo
tolerance_pctNo
total_expectedNo
discrepancy_pctNo
has_discrepancyNo
not_legal_adviceNo
regulatory_basisNo
discrepancy_amountNo
discrepancy_classificationNo

TDQS

B3.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although annotations already cover the read-only/idempotent/destructive profile, the description adds substantial behavior beyond them: compute-mode routing (auto/server/browser, gpu:true always delegates to browser), that inputs are processed transiently and not stored or logged, the synthetic-inputs-only requirement, the exported AP2 artifact carrying execution_hash for provenance, and the browser delegation URL behavior. This is exactly the kind of non-safety behavioral context the annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening redundantly states 'OpenChainGraph compute node' twice in consecutive sentences, and the trailing fv-status paragraph about a receipt snapshot is largely irrelevant to tool selection and invocation. The genuinely useful routing and privacy details are buried inside long run-on text, so the description is over-sized with low-value material.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. What remains missing is the functional core — what the reconciliation compares and what a result means — and the field names for policy_parameters are deferred to 'the tool's manifest'. Adequate operationally, but incomplete on the actual decision semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters including the compute enum and the parent_hashes/parent_tool_ids pairing. The description's compute-mode text largely restates the schema's own enum description and adds no syntax or format beyond it, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state the verb and resource (reconcile a commission statement), and the description adds chain-position context by naming the upstream tool it consumes (validate_commission_hierarchy) and the downstream tool it feeds (amortize_asc606_commissions). However, the description never says what the reconciliation actually does — no mention of which break types, checks, or outputs it produces. The functional purpose is only implied by the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The chain context (consumes from art-264-validate-commission-hierarchy, output feeds art-265-amortize-asc606-commissions) implies this runs after hierarchy validation and before ASC606 amortization, which is useful ordering guidance. But there is no explicit statement of when to invoke this tool versus alternatives, no exclusions, and no prerequisites stated directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconcile_emir_pairingEMIR Counterparty Pairing ReconcilerC
Read-onlyIdempotent
Inspect

EMIR Counterparty Pairing Reconciler: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-157-emir-lifecycle-event-validator. Open at: https://ainumbers.co/chaingraph/art-156-emir-counterparty-pairing-reconciler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds meaningful behavior the annotations cannot convey: compute:"auto" vs "server" vs "browser" execution semantics, that gpu:true always delegates to the browser, that browser mode returns a delegation URL, that inputs are processed transiently and not stored or logged, and that an AP2 artifact with execution_hash is exported for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded and reasonably dense, but a large share of the text is infrastructure boilerplate (Workers/kernel routing, artifact URLs, an FV-status hash and offline-verification note) rather than task-relevant content, and the opening sentence duplicates the title instead of stating the operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and an opaque policy_parameters object, the description should explain what the reconciliation computes and what a result looks like, but it instead documents the compute binding and provenance chain. An agent knows how the node executes but not what it decides or what it returns, so the definition is incomplete for the core task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely repeats the compute-mode semantics already in the schema and adds no field-level meaning beyond it; 'See the tool's manifest for field names' actively defers parameter detail elsewhere, making policy_parameters effectively opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The only statement of what the tool does is the first clause, which is a verbatim restatement of the tool name/title ('EMIR Counterparty Pairing Reconciler'); everything after it describes compute plumbing, not the reconciliation. It never says what 'counterparty pairing reconciliation' actually checks or produces, and it does not distinguish itself from EMIR siblings such as adjudicate_emir_reconciliation, age_emir_reconciliation_breaks, or validate_emir_trade_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use vs. when-to-use-an-alternative guidance beyond the downstream note 'Output feeds: art-157-emir-lifecycle-event-validator', which is pipeline routing rather than selection criteria. The one genuinely actionable instruction is the privacy constraint to use synthetic/anonymised inputs, which is a constraint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconcile_erc8056_multiplierERC-8056 Multiplier ReconcilerB
Read-onlyIdempotent
Inspect

ERC-8056 Multiplier Reconciler: OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-317-rhc-multiplier-reconciler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
event_countNo
ratio_matchNo
discrepanciesNo
computed_ratioNo
expected_ratioNo
declared_action_typeNo
raw_balance_invariantNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new traits: deterministic server-side vs. browser delegation behavior, transient non-retention of inputs, AP2 artifact export with execution_hash, and an offline-verifiable FV-status snapshot. That is substantive behavioral context beyond the structured fields, though it says nothing about latency, rate limits, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The name and compute-node identity are front-loaded, and the compute-mode, privacy, and provenance sentences carry real information. But it is a run-on paragraph with redundant phrasing ('OpenChainGraph compute node' stated twice) and a verbose FV-status explanation that could be compressed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value detail is not required, and annotations cover safety; the description fills in compute-mode behavior, chaining inputs, privacy handling, and provenance output. The remaining gap is the actual decision-function semantics of the ERC-8056 multiplier and the opaque policy_parameters keys, which are punted to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute modes verbatim and offers no extra syntax or field guidance, and it explicitly defers policy_parameters field names to an external manifest rather than clarifying them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title pair ('reconcile' + 'ERC-8056 multiplier') gives a specific verb and resource, and the body tags it as a 'collateral_mandate' compute node. However, the description never explains what the reconciliation actually computes or what the output means, so an agent can only infer purpose from the tool name rather than from the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative among the many sibling reconcile_*/compute_* tools. The only usage-adjacent content is the compute-mode note (which duplicates the schema) and the privacy warning to use synthetic inputs; no selection criteria or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconcile_mpp_subscriptionTempo Subscription & Streaming Settlement ReconcilerC
Read-onlyIdempotent
Inspect

Tempo Subscription & Streaming Settlement Reconciler: OpenChainGraph compute node (settlement_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-36-tempo-mpp-agent-mandate. Output feeds: cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-106-tempo-subscription-reconciler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
breachesNo
cycles_okNo
draw_countNo
total_drawnNo
cumulative_okNo
draw_merkle_rootNo
residual_envelopeNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds genuinely non-obvious traits: deterministic computation, server-side execution on Cloudflare Workers for gpu:false nodes with registered kernels, browser delegation for gpu:true, transient input handling with no storage/logging/retention, and an AP2 export carrying execution_hash for provenance. That is real behavioral disclosure beyond the annotations, even though it reads as family-wide boilerplate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text front-loads a repeated title, then runs through generic compute-node, retention, and provenance boilerplate in dense sentences, and closes with an FV-status hash URL that contributes almost nothing to tool selection. The one line that identifies the actual task is buried inside infrastructure metadata.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and required parameters are zero. Still, for a complex settlement-reconciliation node whose central input (policy_parameters) is an open-ended object deferred to 'the tool's manifest', the description leaves the agent without a concrete picture of what data to supply or what the reconciliation result signifies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented in the schema (including the compute-mode enumeration and the manifest pointer for policy_parameters fields). The description's only addition is naming the upstream artifact that supplies the parent hashes; otherwise it does not enrich parameter meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line name a specific verb+resource (reconcile / Tempo MPP subscription and streaming settlement), and the artifact-chain lines ('Consumes upstream artifacts from art-36-tempo-mpp-agent-mandate', 'Output feeds: cry-04-merkle-batch-verifier') position it in a pipeline. However, the body is dominated by OpenChainGraph compute-node boilerplate rather than saying what reconciliation actually does, and it never distinguishes this tool from nearby siblings such as decode_mpp_session, verify_tempo_mpp_voucher, or map_tempo_settlement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage-like guidance is about execution mode (compute:"auto" default, "browser" forces client-side delegation) and a caution to 'Use synthetic or anonymised inputs only'. There is no statement of when to choose this reconciler over the other Tempo/MPP tools, no prerequisites, and no exclusion of adjacent workflows.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconcile_report_to_general_ledgerReport-to-General-Ledger ReconciliationC
Read-onlyIdempotent
Inspect

Report-to-General-Ledger Reconciliation: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-526-report-gl-reconciliation.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
as_ofNo
accountsNo
currencyNo
decisionNo
gl_as_ofNo
gl_closedNo
rationaleNo
account_countNo
cadence_refusedNo
rejected_inputsNo
schedule_cadenceNo
reporting_cadenceNo
gl_closed_declaredNo
plugged_account_countNo
breaking_account_countNo
appendix_schedule_sourceNo
appendix_schedule_versionNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the bar is lower, yet the description adds genuinely useful behavior: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs are required, an AP2 artifact with execution_hash is exported for chain provenance, and gpu:true nodes always delegate to the browser. That is meaningful context beyond structured fields, though the FV-status snapshot URL and hash are of marginal decision value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dense boilerplate about compute binding, privacy, artifact export, and an offline-verifiable receipt, with the actual reconciliation purpose buried or absent. Front-loading is dominated by title restatement plus infrastructure detail, and the FV-status sentence in particular does not earn its place for an agent deciding how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, but the description omits the core domain behavior entirely: what report is being reconciled to the ledger, what matching/tie-out logic runs, and what policy_parameters fields mean. For a nested-object, 4-parameter reconciliation tool the description covers the compute wrapper but not the tool's actual job.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's compute-mode prose duplicates the schema's own 'compute' description, and it adds nothing about parent_hashes, parent_tool_ids, or how policy_parameters should be populated (deferring to 'the tool's manifest'). No meaningful semantic lift over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify a plausible verb+resource (reconcile a report to a general ledger), but the description itself never says what is being reconciled, against what, or on what basis. It restates the title and then pivots to OpenChainGraph compute plumbing ('compute node (attestation_mandate)'), adding no domain substance. An agent can infer the rough purpose from the name but gets no differentiation from dozens of sibling reconciliations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives such as compute_gl_tieout_recompute, check_iolta_three_way_reconciliation, or the many other reconcile_* siblings. The only conditional guidance is about compute modes (auto/server/browser), which is already fully documented in the schema's 'compute' enum. No prerequisites, no exclusions, no routing advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconcile_sii_ifrs17SII-IFRS 17 Reconciliation BridgerB
Read-onlyIdempotent
Inspect

SII-IFRS 17 Reconciliation Bridger: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-180-solvency2-scr-ratio-calculator. Output feeds: art-182-insurance-reporting-readiness-diagnostic. Open at: https://ainumbers.co/chaingraph/art-181-sii-ifrs17-reconciliation-bridger.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ifrs17_raNo
ifrs17_csmNo
ifrs17_fcfNo
rm_ra_deltaNo
bridge_deltaNo
bel_fcf_deltaNo
sii_risk_marginNo
sii_best_estimateNo
bridge_within_toleranceNo
sii_technical_provisionsNo
relative_bridge_delta_pctNo
ra_vs_risk_margin_ratio_pctNo
ifrs17_insurance_contract_liabilitiesNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds meaningful context: server-vs-browser execution routing, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for chain provenance. It also discloses chain consumption/production (parent artifacts, downstream feeds). It stops short of stating rate limits or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Acknowledges the tool identity up front, but the body is a dense run-on covering compute binding, data handling, chaining, and an obscure FV-status receipt URL. There is redundancy ('OpenChainGraph compute node' repeated) and the FV-status sentence, while definitional, is hard to act on. Some sentences earn their place; several could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and annotations cover the safety profile. The description supplies the missing behavioral layer: execution mode, transient data handling, provenance/chaining, and pipeline position. It is nearly complete, with the only gap being the opaque decision-function semantics deferred to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics already present in the schema and adds nothing about parameter formats or the decision-function fields ('see the manifest' offloads that to an external doc). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening phrase identify the resource (an SII→IFRS 17 reconciliation) and it names the upstream artifact (solvency2-scr-ratio-calculator) and downstream consumer (insurance-reporting-readiness-diagnostic). However, the body spends nearly all its text on OpenChainGraph compute semantics rather than stating what the reconciliation actually produces, so the verb is only implied by the title. It does not contrast itself against sibling reconciliation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real usage constraints: compute:'auto' vs 'browser' behavior, gpu:true always delegating, and an explicit 'use synthetic or anonymised inputs only' warning. But there is no guidance on when to choose this tool over siblings or what prerequisites (e.g., upstream artifact availability) gate a valid call. Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconcile_x402_batch_settlementx402 V2 Batch-Settlement ReconcilerC
Read-onlyIdempotent
Inspect

x402 V2 Batch-Settlement Reconciler: OpenChainGraph compute node (settlement_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-60-agent-economy-runtime-fit-diagnostic. Output feeds: cry-04-merkle-batch-verifier, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-61-x402-batch-settlement-reconciler.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
batch_idNo
status_asofNo
recon_verdictNo
voucher_countNo
escrow_addressNo
redeemed_countNo
redeemed_totalNo
settlement_assetNo
unredeemed_valueNo
voucher_findingsNo
within_toleranceNo
merkle_root_preimageNo
settlement_risk_windowNo
batch_delta_minor_unitsNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds genuine context beyond those: deterministic compute, transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, and that it exports an AP2 artifact carrying execution_hash. That data-handling and provenance disclosure is real added value; it stops short of 5 only because the actual reconciliation behavior is undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The passage is dominated by framework boilerplate, an external URL, a long FV-status hash, and an offline-verification note that do nothing to help tool selection. The actual purpose is neither front-loaded nor elaborated; signal-to-noise is poor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the return values needn't be explained, and the data-handling/provenance disclosure is adequate. However, for a reconciliation tool the description never states what is reconciled or when it applies, leaving the core selection question unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode explanation largely duplicates the schema, and policy_parameters remains an opaque manifest lookup in both places. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence merely restates the name and title ('x402 V2 Batch-Settlement Reconciler: OpenChainGraph compute node (settlement_mandate)') rather than explaining what the reconciliation actually does. An agent learns it is a 'deterministic compute node' but not what inputs it reconciles (batches? mandates? settlement legs?) or what the decision function decides. The specific verb+resource is present but the meaning is essentially tautological against the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute:'auto'/'browser' guidance describes the framework's execution model, not when this tool should be chosen over the many sibling reconciliation tools (e.g. reconcile_mpp_subscription, check_x402_domain_nonce_window, model_x402_settlement). No when/when-not, no dependency prerequisites beyond the upstream/downstream artifact names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recon_matchMatch a camt.053 statement against a counterpart expectation setA
Read-onlyIdempotent
Inspect

Parses a camt.053.001 statement (same schema-subset checks as camt053_parse) and a counterpart expectation set (CSV, header EndToEndId,Amount,Currency,Date -- same strict RFC 4180 parser as the WORKBOOK-1 CSV tools), then runs the SAME deterministic match engine as the tools/565 browser workbench: EndToEndId exact match first (statement order), then amount+date tolerance + currency match (first unmatched expectation in CSV order). Returns matches, exceptions (unmatched entries/expectations), and a reconciliation receipt (statement digest, expectation-set digest, match-rule declaration, counts, exception digests, execution_hash) -- byte-identical to the browser tool for the same inputs. Prepare/hash/receipt only; per-exception disposition receipts are the browser workbench's interactive follow-on.

ParametersJSON Schema
NameRequiredDescriptionDefault
statement_xmlYescamt.053.001 XML statement document text.
amount_toleranceNoAbsolute amount-match tolerance (default 0.01).
expectations_csvYesCounterpart expectations, CSV with header EndToEndId,Amount,Currency,Date.
date_tolerance_daysNoDate-match tolerance in days (default 0).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, openWorldHint=false, idempotentHint=true, destructiveHint=false. The description reinforces idempotency and non-destructiveness by stating it is 'byte-identical' and 'prepare/hash/receipt only'. It adds context about the matching engine being 'deterministic' and the output being a receipt with an execution hash, which goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that front-loads the core action. It is somewhat verbose but each sentence adds value (input formats, matching algorithm, output structure). Could be slightly more concise, but it is well-structured and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool (two inputs, specific matching rules, detailed output), the description covers all necessary aspects: input format constraints, matching order (EndToEndId exact then amount+date tolerance+currency), output components (matches, exceptions, receipt with digest and execution hash). Without an output schema, the description effectively explains return values, making it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 4 parameters. The description adds extra context: for expectations_csv it mentions 'same strict RFC 4180 parser as the WORKBOOK-1 CSV tools', and for amount_tolerance it states 'default 0.01' (also in schema description). For statement_xml and date_tolerance_days, the description adds minimal additional value. Since schema already covers basics, the description provides modest extra semantics, warranting a 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool parses two inputs (camt.053 statement and CSV expectations), runs a deterministic match engine, and returns matches, exceptions, and a reconciliation receipt. It distinguishes itself from siblings like 'camt053_parse' (only parses) and 'match_confirmations' (different matching).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that this tool is for initial reconciliation (prepare/hash/receipt only) and that per-exception disposition is handled by the browser workbench. It provides context on when to use it but does not explicitly exclude alternatives or mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_fund_positionsRecord Fund PositionsB
Read-onlyIdempotent
Inspect

Record Fund Positions: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-558-record-fund-positions.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
fund_idNo
holdingsNo
not_provenNo
holding_countNo
valuation_dateNo
disclosure_noteNo
structural_errorNo
shares_outstandingNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantive behavior beyond them: transient processing with no storage, logging, or retention; a synthetic/anonymised inputs requirement; and export of an AP2 artifact carrying execution_hash for chain provenance. These are real operational facts an agent needs. It could still say more about failure modes or what the artifact contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front half is reasonably front-loaded (name, node type, compute behavior), but the back half is padding: a raw URL and a long FV-status hash string that consume space without helping an agent select or call the tool. The sentence about the receipt being 'a snapshot, not a subscription' is tangential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so the description needn't explain return values; it correctly focuses on compute behavior and data handling. But it omits the core semantics of recording fund positions and provides no usage context, leaving a gap for a tool embedded in a dense family of fund and chain-compute siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description adds no parameter meaning beyond the schema; the compute-mode explanation it gives duplicates the schema's own description. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title convey the resource (fund positions), and the description identifies the tool as a deterministic OpenChainGraph compute node of type attestation_mandate. However, it never states in plain terms what recording fund positions actually does or what decision function it evaluates, and it does nothing to distinguish itself from the many sibling fund tools (recompute_fund_nav, recompute_fund_fees, publish_fund_nav_head). Purpose is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use/when-not-to-use guidance and no named alternative, despite a large sibling set of fund-related tools. The only operational guidance is about compute mode selection (auto/server/browser), which is a parameter mechanic rather than usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_index_constituentsRecord Index ConstituentsB
Read-onlyIdempotent
Inspect

Record Index Constituents: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-557-record-index-constituents.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
index_idNo
as_of_dateNo
not_provenNo
constituentsNo
structural_errorNo
constituent_countNo
regulatory_frameworkNo
selection_universe_sizeNo
eligibility_criteria_refNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds substantive behavior: inputs are processed transiently and not stored, logged, or retained; browser mode returns a delegation URL; gpu:true nodes always delegate; and it exports an AP2 artifact carrying execution_hash for chain provenance. That is real operational context an agent would not infer from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The subject is front-loaded, but the body is a dense run-on of infrastructure details plus two verbatim URLs, including a long FV-status hash path, that crowd out the operationally relevant content. Several clauses (kernel registration, offline receipt verification) do not help an agent decide or invoke correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. But for a tool with a free-form nested policy_parameters object and zero required parameters, the definition never states what inputs the decision function expects, deferring to an off-tool 'manifest' — leaving the agent unable to construct a meaningful call from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters thoroughly; baseline is 3. The description's compute narrative largely duplicates the schema's own compute description and provides no field-level guidance for policy_parameters beyond pointing at an external manifest, so it adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening names a verb and resource ('Record Index Constituents') and tags it as an OpenChainGraph compute node, so the surface purpose is legible. However, nearly all remaining text is about compute placement (server vs browser delegation, kernels, gpu flags) rather than what the tool actually records or the decision function it runs, and it never distinguishes itself from near-siblings like record_index_correction, compute_index_weights, or record_fund_positions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is one genuine usage constraint ('Use synthetic or anonymised inputs only'), which is useful. But there is no when-to-use/when-not guidance, no indication of when this tool is the right choice versus the sibling index-recording tools, and the compute-mode discussion is parameter behavior rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_index_correctionRecord Index CorrectionC
Read-onlyIdempotent
Inspect

Record Index Correction: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-647-record-index-correction.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses that inputs are processed transiently and not stored or logged, that gpu:true nodes always delegate to the browser, and that an AP2 artifact with execution_hash is exported for provenance. That is meaningful behavioral context the annotations do not carry, though it says nothing about what the correction actually does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is padded with infrastructure boilerplate, a promotional URL, and a 64-character FV-status hash that consumes a large share of the description. The genuine purpose is never front-loaded, so the size is not earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with a nested policy_parameters object and no output schema, the description omits the one thing the agent needs most: what to pass in policy_parameters and what the correction returns. Platform details are covered, but task-relevant completeness is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters are already documented, and the description's note about exporting an execution_hash adds chaining context for parent_hashes. However, it defers the actual input fields to 'the tool's manifest' (policy_parameters is opaque in both places), so it adds little semantic depth.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name and then pivots to platform boilerplate ('OpenChainGraph compute node (attestation_mandate)') without ever explaining what an index correction computes or does. An agent cannot tell from this text what the decision function corrects, and nothing distinguishes it from siblings like record_index_constituents or compute_index_weights.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is input-type guidance ('Use synthetic or anonymised inputs only') and compute-mode explanation, but no when-to-use/when-not guidance and no routing to alternatives. The agent is left to infer whether this tool is the right choice versus the many other index-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_model_input_lineageRecord Model Input LineageA
Read-onlyIdempotent
Inspect

Record Model Input Lineage: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-451-model-outcome-analysis, art-488-model-replication-diff. Output feeds: art-562-compile-model-risk-lineage-pack. Open at: https://ainumbers.co/chaingraph/art-648-record-model-input-lineage.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fenceNo
run_refNo
model_idNo
as_of_dateNo
attributesNo
not_provenNo
attribute_countNo
structural_errorNo
regulatory_frameworkNo
unmapped_attribute_countNo

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only/idempotent/non-destructive, and the description adds meaningful context beyond them: inputs are processed transiently and never stored, logged, or retained; compute:'browser' returns a delegation URL; gpu:true nodes always delegate; and it exports an AP2 artifact carrying an execution_hash. The retention/privacy disclosure and the offline-verifiable FV-status receipt are exactly the kind of behavioral detail annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is dense and information-rich, but it carries significant low-value noise: a raw artifact URL, a long FV-status hash path, and explicit upstream/downstream artifact IDs. The purpose is present early but competes with node-type boilerplate, so the front-loading is only partial.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the description covers compute modes, transient processing, provenance chaining, and the artifact it emits. Given the tool's complexity and rich annotations/schema, this is largely complete; the only real gap is the absence of explicit sibling-routing guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, making 3 the baseline. The description largely restates the compute-mode semantics already in the schema and adds only a pointer ('See the tool's manifest for field names') for policy_parameters. It adds little semantic meaning beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the verb+resource ('Record Model Input Lineage') and clarifies it is an OpenChainGraph compute node that exports an AP2 artifact with execution_hash. It also positions the tool in a provenance graph by naming the upstream artifacts it consumes and the downstream artifact it feeds, which helps distinguish it from generic chain tools. The core action is somewhat buried under node-type boilerplate, but an agent can still determine what the tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear directive ('Use synthetic or anonymised inputs only') and explains the compute-mode selection conditions (auto/server/browser, gpu:true delegation), which is useful invocation guidance. However, it never states when to choose this tool over close siblings like emit_chaingraph_artifact, run_chain, or build_product_lineage. Usage is implied via the upstream/downstream artifact chain rather than stated explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redline_diffDiff an original vs. proposed revision and mint a diff receiptA
Read-onlyIdempotent
Inspect

An agent proposes an edit: diffs original text/markdown against its own revised version and returns the line-level hunks plus a diff receipt (original/revised digests, diff-algorithm declaration, per-hunk digests). Byte-identical to what the tools/552 browser workbench computes for the same inputs -- a human can paste the SAME original/revised text into that workbench, disposition each hunk (accept/reject/comment), and their resulting hunk/disposition receipts will reference this diff_receipt's execution_hash. Pass the whole bundle (this diff_receipt + the human's hunk_receipts + disposition_receipt) to redline_verify to check the interleaved chain end-to-end.

ParametersJSON Schema
NameRequiredDescriptionDefault
revisedYesProposed revised text or markdown document.
originalYesOriginal text or markdown document.
generated_atNoISO 8601 timestamp (caller-supplied for determinism). Defaults to the call time.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds valuable context: byte-identical behavior with a workbench, deterministic execution_hash, and interleaved receipt chain. This goes beyond what annotations provide, though it omits potential error handling or authorization detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that efficiently conveys key points without redundancy. While not overly verbose, it could be slightly better organized by separating the workflow instructions from the behavior note. Still, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters, no output schema, and moderate complexity, the description explains the output format, interop with a workbench, and the receipt chain. It does not address error conditions or detailed field descriptions, but it is sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description does not add new parameter-level semantics but provides overall context. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's action (diff), the resources (original vs revised text/markdown), and the output (line-level hunks and diff receipt). It also distinguishes itself from the sibling tool `redline_verify` by explicitly stating the downstream use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the tool's purpose for proposing an edit and explains the next step with `redline_verify`. While it does not list explicit exclusion criteria, the context is clear and relevant for an AI agent to understand when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redline_verifyVerify a redline receipt bundle against the original + revised textA
Read-onlyIdempotent
Inspect

Recomputes a redline review from scratch: the diff (from the pasted original+revised text), the diff_receipt's execution_hash, every hunk_receipt's digest/execution_hash/chain-link (in the order supplied -- entries may be minted by an agent, a human, or both interleaved), the disposition_receipt's execution_hash, and the accepted-text digest. Returns valid:true/false, a per-check breakdown, and broken_hunk (the zero-based index of the first divergence, or null) -- never trusts a bundle claim without checking it against a fresh recomputation.

ParametersJSON Schema
NameRequiredDescriptionDefault
bundleYesThe redline receipt bundle to verify.
revisedYesRevised text or markdown document.
originalYesOriginal text or markdown document.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, which are consistent with the description. The description adds substantial detail on what gets recomputed and what the output contains, going well beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with the main action front-loaded. It lists specific checks and return values. While somewhat lengthy, every sentence adds useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description fully explains return values (valid, per-check breakdown, broken_hunk) and the verification process. It covers all necessary aspects for effective tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters. The description adds value by explaining the bundle structure, order of hunk_receipts, and possibilities for agent/human interleaving, which aids understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it recomputes a redline review from scratch and lists the components it verifies. It distinguishes itself from the sibling tool 'redline_diff' by focusing on verification of a bundle rather than generating the diff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool verifies a redline receipt bundle and never trusts a bundle claim. It implies when to use (to verify) but does not explicitly state when not to use or mention alternatives. However, the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_mra_remediation_closureConsent-Order / MRA Remediation Closure RegisterC
Read-onlyIdempotent
Inspect

Consent-Order / MRA Remediation Closure Register: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-533-mra-remediation-closure-register.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
decisionNo
open_countNo
issue_countNo
register_idNo
closed_countNo
evaluated_atNo
overdue_countNo
determinationsNo
rejected_inputsNo
overdue_grace_daysNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/destructive/openWorld, but the description adds real behavioral context beyond them: deterministic execution, server-vs-browser compute semantics, that inputs are processed transiently and not stored/logged/retained, and that output is an AP2 artifact carrying execution_hash. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with redundant self-identification ('Consent-Order / MRA Remediation Closure Register' then 'Deterministic OpenChainGraph compute node'), then padded with a URL and a long FV-status hash. The sentences that matter functionally appear late and are diluted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a 4-parameter tool with a nested policy_parameters object the description never clarifies what inputs to supply or what the closure register computes. The core semantics are left to the external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description repeats the compute-mode behavior but adds nothing about policy_parameters beyond what the schema defers to ('See the tool's manifest for field names'). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the name/title ('Consent-Order / MRA Remediation Closure Register: OpenChainGraph compute node') and then spends most of its length on infrastructure boilerplate. 'Exports an AP2 artifact with execution_hash for chain provenance' is the only functional disclosure, but it never says what the tool actually computes, registers, or what a 'remediation closure' entails. An agent cannot distinguish it from sibling track_fatca_crs_ro_remediation_closure or attestation tools based on this text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no routing against the many sibling register/attestation tools. The only usage-like instruction is 'Use synthetic or anonymised inputs only,' which is a data-handling caveat rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_source_arrival_freshnessSource Arrival & Freshness RegisterC
Read-onlyIdempotent
Inspect

Source Arrival & Freshness Register: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-524-source-arrival-freshness-register.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
sourcesNo
decisionNo
source_countNo
execution_stateNo
missing_sourcesNo
late_or_stale_sourcesNo
unknown_freshness_sourcesNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is largely covered. The description does add real behavioral context beyond that: transient processing with no storage/logging/retention, a requirement to use only synthetic or anonymised inputs, and emission of an AP2 artifact with execution_hash. That is meaningful, though some of it (compute modes) merely duplicates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long and front-loaded with boilerplate: title restatement, compute-node framing, a URL, and a full FV-status hash snapshot explanation. Much of it does not help an agent decide or invoke, and the actual purpose sentence never appears.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations cover safety. However, for a zero-required-parameter tool competing with hundreds of compliance siblings, the omission of what the tool computes and what policy_parameters fields mean leaves the agent unable to confidently select or configure it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies. The description reiterates the compute-mode semantics already fully documented in the schema and points to 'the tool's manifest for field names' for policy_parameters, adding no syntax or format detail the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Source Arrival & Freshness Register') and then describes OpenChainGraph compute infrastructure rather than what the tool actually registers or computes. 'Compliance_control compute node' plus AP2 artifact export is generic plumbing that applies to hundreds of siblings; the actual decision function for source-arrival freshness is never stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on the 'compute' parameter (auto/server/browser, gpu:true delegates), but nothing about when an agent should reach for this tool versus the ~500 sibling compliance tools. No prerequisites, no alternatives, no triggering conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replay_supervisory_scenarioSupervisory Scenario Replay (DFAST-lite)A
Read-onlyIdempotent
Inspect

Supervisory Scenario Replay (DFAST-lite): OpenChainGraph compute node (capital_assessment). Regulatory deadline: 2027-02-01 (Annual re-pin — Fed publishes new supervisory scenarios each February). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: sim-01-lcr-nsfr-liquidity-stress-test, sim-03-basel-rwa-scenario-modeler. Open at: https://ainumbers.co/chaingraph/art-370-supervisory-scenario-replay.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
quartersNo
scenarioNo
trough_quarterNo
not_a_submissionNo
ending_capital_mnNo
trough_capital_mnNo
scenario_set_digestNo
scenario_source_urlNo
starting_capital_mnNo
scenario_release_dateNo
trough_capital_ratio_pctNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/destructive=false, so the safety profile is covered. The description adds genuinely useful behavior: deterministic compute, default server-side execution on Workers with a browser-delegation fallback controlled by the compute field, transient non-retention of inputs, and an AP2 artifact with execution_hash. These go meaningfully beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operational content (compute modes, transience, artifact export) is efficient, but the description opens by repeating the title verbatim and closes with a verbose FV-status snapshot disclaimer whose value to an invoking agent is marginal. Regulation deadline and URL are useful; the receipt prose is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, annotations covering the safety profile, and 100% schema coverage on 4 params, the description needn't explain return values. It fills the remaining gaps well, covering execution locality, data handling, chaining, and provenance. Only the invocation-time decision of when to prefer this node over sibling stress-test tools is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the compute enum and the parent_hash/policy_parameters semantics are already documented in the schema. The description's account of compute:'auto'/'browser' largely restates the schema text, and it says nothing extra about parent_hashes/parent_tool_ids ordering or policy_parameters field discovery beyond 'see the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Supervisory Scenario Replay (DFAST-lite)') and situates it as an OpenChainGraph capital_assessment compute node. It partially differentiates by naming downstream consumers (sim-01-lcr-nsfr-liquidity-stress-test, sim-03-basel-rwa-scenario-modeler), but the core purpose statement is buried under compliance metadata rather than front-loaded.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a real usage constraint ('Use synthetic or anonymised inputs only') and names downstream tools it feeds, which implies placement in a pipeline. However, it never says when to choose this over close siblings like compute_stress_test_scenarios, run_liquidity_stress_test, or compute_rwa_scenarios, so selection guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replicate_model_outputsModel Replication DiffB
Read-onlyIdempotent
Inspect

Model Replication Diff: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-488-model-replication-diff.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
verdictNo
aggregateNo
transformNo
per_recordNo
failing_segmentsNo
tolerance_appliedNo
model_spec_versionNo
model_spec_as_of_dateNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the read-only/idempotent annotations by disclosing transient input processing (no storage, logging, or retention), server-vs-browser compute routing behavior, and the emitted AP2 artifact with execution_hash. Read-only and idempotent hints are consistent with the described behavior. The FV-status receipt sentence adds little behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Opening with "Model Replication Diff: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node." repeats the title and is redundant. The retention, routing, artifact, and FV-status URL content is dense but not front-loaded around what the tool computes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and data-handling/compute-routing are covered. However, the description never explains the decision function behind policy_parameters or what the replication diff produces, leaving the core semantics dependent on the schema and external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description largely restates the compute modes already documented in the schema. It adds no semantics for parent_hashes/parent_tool_ids or for the opaque policy_parameters object beyond pointing to a manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title signal a model-output comparison, but the description never states in plain language what the tool actually computes or diffs. It spends its sentences on infrastructure (compute routing, retention, artifact export) so an agent cannot distinguish it from `compare_model_outcome_analysis` or `run_model_test_battery` beyond the name itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a real usage constraint ("Use synthetic or anonymised inputs only") and explains conditional routing (auto/server/browser, gpu:true delegates), but gives no guidance on when to choose this tool over its many siblings. Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_cbam_default_valueCBAM Default-Value ResolverC
Read-onlyIdempotent
Inspect

CBAM Default-Value Resolver: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-68-carbon-compliance-fit-diagnostic. Output feeds: art-69-cbam-embedded-emissions-calculator. Open at: https://ainumbers.co/chaingraph/art-70-cbam-default-value-resolver.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
cn_codeNo
markup_pctNo
provenanceNo
good_categoryNo
reporting_yearNo
country_of_originNo
effective_defaultNo
reference_versionNo
actual_path_recommendedNo
default_value_tco2e_per_tNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnly/idempotent/destructive annotations already covering the safety profile, the description adds genuinely new behavior: deterministic execution, transient processing explicitly not stored/logged/retained, the synthetic-input constraint, and an exported AP2 artifact carrying execution_hash. That is meaningful disclosure beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is dense with internal identifiers ('compute:"auto"', 'gpu:false', 'art-68-...') and buries the actual operation behind infrastructure preamble. The closing FV-status sentence with a full hex digest is heavy payload for a snapshot receipt note that does not help selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a node with rich annotations, a full output schema, and upstream/downstream artifact wiring spelled out, the description is only borderline complete: it never explains what the default-value resolution yields conceptually or the domain meaning of policy_parameters fields (deferred to a manifest). Return values need not be explained given the output schema, but the domain intent gap keeps this at adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description's compute-mode sentence largely duplicates the enum description already in the schema. The parent_hashes/parent_tool_ids/policy_parameters semantics are left entirely to the schema and the referenced manifest, so the description adds nothing over structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The text leads with the tool title restated ('CBAM Default-Value Resolver: OpenChainGraph compute node') and then spends the body on provenance plumbing rather than stating what resolving a CBAM default value actually computes. An agent learns it is a deterministic compute node but not what the verb+resource domain operation produces, and no sibling (e.g. calculate_cbam_embedded_emissions, model_cbam_certificate_cost) is differentiated against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute-mode explanation (auto/server/browser, gpu:true delegation) is runtime configuration, not usage guidance for choosing this tool over alternatives. There is no statement of when to reach for resolve_cbam_default_value versus the other CBAM siblings, nor any preconditions beyond 'use synthetic or anonymised inputs'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_provenance_ingredient_treeProvenance Ingredient Tree ResolverB
Read-onlyIdempotent
Inspect

Provenance Ingredient Tree Resolver: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-124-content-credential-signature-verifier. Open at: https://ainumbers.co/chaingraph/art-125-provenance-ingredient-tree-resolver.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely new operational context: inputs are processed transiently and not stored/logged/retained, execution is deterministic, gpu:true nodes always delegate to the browser, and the output is an AP2 artifact carrying execution_hash. That is meaningful disclosure beyond the structured fields. It stops short of describing delegation URL lifetime, failure modes, or the artifact's shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first three sentences are redundant ('Provenance Ingredient Tree Resolver', 'OpenChainGraph compute node', 'Deterministic OpenChainGraph compute node') and the FV-status sentence embeds a 64-hex snapshot hash that contributes nothing to tool selection. The compute-mode and data-handling content is front-loaded and useful, so the text is dense rather than empty, but it is larger than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does carry the return-value burden and partially meets it by naming the AP2 artifact and execution_hash. It also covers compute modes, chaining inputs, and data-handling. However, for a 4-parameter nested-input compute node it leaves the core resolution semantics and policy_parameters field names unspecified, pointing to an external manifest instead.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters are already documented in the schema, including the compute enum and the parent_hashes/parent_tool_ids pairing. The description mostly restates compute-mode behavior and hints at upstream chaining, adding little semantics beyond the schema. It notably defers policy_parameters content to 'the tool's manifest for field names' rather than explaining the decision-function inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line repeats the title verbatim, and the functional statement is only implied by the name plus 'Exports an AP2 artifact with execution_hash for chain provenance' and 'Consumes upstream artifacts from art-124-content-credential-signature-verifier'. It never explains what an 'ingredient tree' resolution actually does, and it does not distinguish this from nearby siblings such as build_product_lineage, resolve_recall_trace, or link_traceability_lot_code. Purpose is inferable but not stated in specific verb+resource terms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative-tool guidance; the only conditional language concerns compute mode ('auto' vs 'browser'), which is a parameter mechanic rather than tool selection guidance. 'Use synthetic or anonymised inputs only' is a hard constraint, not a usage heuristic. An agent cannot tell from this text when to reach for this tool over the many other lineage/provenance builders.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_recall_traceFSMA 204 Recall Trace Resolver (24-Hour FDA List)C
Read-onlyIdempotent
Inspect

FSMA 204 Recall Trace Resolver (24-Hour FDA List): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-119-traceability-lot-code-linker. Open at: https://ainumbers.co/chaingraph/art-120-recall-trace-resolver.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourcesNo
recipientsNo
traced_countNo
contaminated_tlcNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, but the description adds meaningful context beyond them: inputs are processed transiently and not stored/logged, synthetic or anonymised inputs are required, and the tool exports an AP2 artifact carrying execution_hash for chain provenance. These are real behavioral disclosures the annotations do not cover, though the description does not explain the tool's actual decision logic or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a wall of infrastructure boilerplate: compute-binding details, a full URL, and an FV-status hash string that consume most of the space while the actual function occupies one clause. It is not front-loaded around what the tool does, and significant content duplicates structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and rich annotations, so return values and safety need not be re-explained, and parameter documentation is present in the schema. However, the core decision function is opaque — policy_parameters is an open object whose field names live only in an external manifest — and the description does not compensate, leaving the agent without enough to invoke the tool meaningfully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation duplicates the schema, and it defers policy_parameters field names to 'the tool's manifest,' adding no discoverable meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mostly restates the title ('FSMA 204 Recall Trace Resolver') and then pivots to infrastructure boilerplate about OpenChainGraph compute nodes. The only genuine purpose signal is 'Consumes upstream artifacts from: art-119-traceability-lot-code-linker,' which hints at a lot-code traceability chain, but the actual decision the tool computes is never stated. An agent can tell it relates to FSMA 204 recall tracing but not what it produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no conditions that route the agent here rather than to a sibling like validate_fsma204_cte or link_traceability_lot_code. The only procedural content is the compute-mode explanation, which is invocation mechanics, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_rule_versionEffective-Date / Rule-Version RegistryC
Read-onlyIdempotent
Inspect

Effective-Date / Rule-Version Registry: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-627-effective-date-rule-version-registry.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
boundsNo
messageNo
citationNo
error_codeNo
scope_noteNo
standard_idNo
entry_digestNo
filer_statusNo
parameter_setNoParameter name to {value, effective_from, effective_to, source, source_digest, status}. status is IN_FORCE, NO_VERSION_IN_FORCE, or AMBIGUOUS_MULTIPLE_VERSIONS_IN_FORCE.
fiscal_year_endNo
float_sensitiveNo
resolution_pathNo
fiscal_year_beginNo
resolution_statusNoRESOLVED or NO_BINDING_ENTRY, or null when the input was refused with an error_code.
transition_methodNo
parameter_set_as_ofNoThe measurement date used, which is the fiscal year's beginning, matching how effective-date language is written.
fiscal_year_begin_basisNodeclared or inferred_prior_year_plus_one_day. An inference is never presented as a fact.
closed_filer_status_enumNo
early_adoption_permittedNo
first_binding_period_endNo
registry_digest_recomputedNo
binding_for_queried_annual_periodNo
binding_for_queried_interim_periodsNo
effective_for_annual_periods_beginningNo
effective_for_interim_periods_beginningNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds genuinely useful behavioral context beyond them: transient processing with no storage or logging, a 'synthetic or anonymised inputs only' constraint, browser delegation semantics for gpu:true nodes, and an AP2 artifact carrying execution_hash for provenance. That is meaningful disclosure for a mutation-adjacent compute node. It still omits what the resolution returns or how policy_parameters are interpreted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long and front-loaded with infrastructure boilerplate (compute binding, privacy notice, FV-status receipt URL) while the tool's actual purpose never appears. Several sentences about verification URLs and artifact snapshots do not help an agent decide when or how to invoke this tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained. However, for a 4-parameter tool with a nested policy_parameters object whose fields are only 'in the tool's manifest', the description leaves the core input semantics unresolved and never explains the resolution logic an agent needs to trust the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description largely restates the compute enum semantics already documented in the schema and adds nothing about parent_hashes/parent_tool_ids or the opaque policy_parameters object (which it defers to an external manifest). No additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what resolve_rule_version actually does. It labels the node 'compute node (compliance_mandate)' and names an artifact URL, but the functional operation (resolving which rule version is effective for a given date/mandate) is only inferable from the title and tool name, not from the prose. Sibling resolve_* tools exist (resolve_cbam_default_value, resolve_recall_trace) and none are contrasted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no differentiation from the many sibling resolver/registry tools. The only conditional guidance offered is about compute mode selection (auto/server/browser), which is an invocation detail rather than task-level usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rollforward_y14_capital_worksheetFR Y-14 Capital Worksheet Roll-Forward & Cross-CheckB
Read-onlyIdempotent
Inspect

FR Y-14 Capital Worksheet Roll-Forward & Cross-Check: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-439-y14-capital-worksheet-rollforward.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
entity_idNo
worksheetNo
cross_checkNo
report_formNo
rollforwardNo
boundary_noteNo
reporting_periodNo
constants_versionNo
published_scenarioNo
ending_tier1_capital_usdNo
ending_total_capital_usdNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds genuinely useful behavior beyond that — transient non-retention of inputs, deterministic server-side vs. browser delegation semantics, and an AP2 artifact carrying an execution_hash for chain provenance. These are real operational traits an agent needs. It stops short of describing failure modes or latency, keeping it just below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded enough, but the body is dominated by template boilerplate (compute binding, transient processing, artifact export) plus a documentation URL and a long FV-status hash string that add bulk without helping an agent decide how to invoke the tool. The one sentence that should state what the roll-forward computes is absent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the data-handling/chain-provenance details are useful. However, for a complex regulatory compute node with a nested policy_parameters object, the description never explains what the decision function actually computes or what the cross-check verifies, leaving a real gap an agent would want filled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode sentence effectively restates the schema and adds nothing new, and it defers policy_parameters field names to an external manifest. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names a concrete verb+resource ('FR Y-14 Capital Worksheet Roll-Forward & Cross-Check'), but the description body never restates or expands this — it opens with generic 'OpenChainGraph compute node (regulatory_reporting)' boilerplate. It does not distinguish this from sibling reconciliation/recompute tools such as recompute_rwa_scenarios or map_call_report_schedule_rc. The purpose is only recoverable from the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute modes (auto/server/browser) but gives no guidance on when to use this tool versus the many sibling regulatory-computation tools, nor any prerequisites for the roll-forward. There is no when/when-not framing and no named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roll_up_aml_lookback_dispositionAML Lookback Disposition RollupC
Read-onlyIdempotent
Inspect

AML Lookback Disposition Rollup: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-534-aml-lookback-disposition-rollup.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofNo
itemsNo
decisionNo
lookback_idNo
population_sizeNo
rejected_inputsNo
sample_frame_sizeNo
sampled_item_countNo
lookback_close_dateNo
rationale_presence_pctNo
items_missing_rationaleNo
disposition_coverage_pctNo
population_tie_out_holdsNo
missing_disposition_countNo
sample_frame_population_sizeNo
sampling_frame_discrepancy_flagNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds substantial context the annotations cannot: transient processing with no storage/logging/retention, a synthetic-or-anonymised-inputs-only constraint, the AP2 artifact and execution_hash provenance output, and the server/browser delegation semantics. This is genuinely useful behavioral disclosure beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The name and mode semantics are front-loaded, but the paragraph is dense with boilerplate, and the trailing FV-status sentence embedding a 64-character hash path is largely noise for tool selection. It is not bloated enough to obscure the opening, but several clauses do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a compute tool with a nested policy_parameters object and sibling AML tools, the description omits the core domain semantics — what is rolled up, from what inputs, and how the result should be read. The infrastructure detail is complete; the functional explanation is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description only gestures at chaining via 'exports an AP2 artifact with execution_hash for chain provenance' and adds nothing about policy_parameters field names (which the schema itself defers to 'the tool's manifest'). Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the name/title ('AML Lookback Disposition Rollup: OpenChainGraph compute node (compliance_control)') and then spends its text on infrastructure boilerplate rather than stating what the tool actually computes. It never explains what a 'disposition rollup' produces or which AML lookback decisions it aggregates, so an agent cannot distinguish it from siblings like plan_aml_disposition_sample or reconcile_aml_lookback_completeness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to the many AML siblings. The only conditional advice concerns compute mode ('auto' vs 'browser'), which is about execution placement, not about when this tool is the right one to call versus another AML tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

route_einvoice_jurisdiction_mandateE-Invoice Jurisdiction Mandate RouterB
Read-onlyIdempotent
Inspect

E-Invoice Jurisdiction Mandate Router: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-294-einvoice-vat-calc-verifier. Output feeds: art-296-einvoice-transmission-receipt-builder. Open at: https://ainumbers.co/chaingraph/art-295-einvoice-jurisdiction-mandate-router.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
phase_statusNo
table_versionNo
mandatory_fromNo
regime_countryNo
applicable_formatNo
transmission_channelNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety bar is covered; the description still adds real value beyond them by disclosing transient processing with no storage, logging or retention, the browser-delegation behavior for gpu:true nodes, and an AP2 artifact carrying execution_hash for provenance. Data-handling and delegation behavior are exactly the traits an agent cannot infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded and identifies the node type, but the body is padded with infrastructure boilerplate and a trailing sentence containing a 64-character FV-status hash plus an offline-verification claim that an agent cannot act on. The sentence 'Deterministic OpenChainGraph compute node' also redundantly restates the preceding sentence's fragment, diluting the useful content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not needed, and provenance/chaining requirements are well covered. The gap is that a node whose entire function is computed from policy_parameters never tells the agent what those fields are, punting to an external manifest; for a compliance-routing compute node that is a meaningful omission, though the data-handling and delegation notes partially compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail, and the description largely restates the compute-mode semantics already present in the schema. Critically, the description defers the core decision inputs to 'the tool's manifest' rather than explaining what policy_parameters should contain, so it adds little on the one opaque, free-form field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool a deterministic OpenChainGraph compute node in the compliance_mandate family that routes an e-invoice jurisdiction mandate, which is a verb-ish plus resource. However it never explains what the routing decision actually determines (which jurisdiction's e-invoicing mandate applies, and on what basis), and it leans on the title rather than adding substance. Sibling differentiation comes only indirectly from the named upstream/downstream artifact IDs (art-294, art-296), not from a stated scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The chain context (consumes art-294-einvoice-vat-calc-verifier, feeds art-296-einvoice-transmission-receipt-builder) implies when in a pipeline this tool is invoked, and the compute:"auto"/"browser" discussion gives some execution-mode guidance. But nothing says when to choose this router over neighbor tools such as validate_vida_einvoice_conformance or route_vida_oss_registration, and no prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

route_partner_stablecoin_jurisdictionArc Multi-Currency Corridor Jurisdiction RouterB
Read-onlyIdempotent
Inspect

Arc Multi-Currency Corridor Jurisdiction Router: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: 511-multi-currency-pvp-validator. Open at: https://ainumbers.co/chaingraph/art-111-arc-corridor-jurisdiction-router.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
leg_regimesNo
pvp_handoffNo
disclosure_gapsNo
travel_rule_handoffNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new context beyond them: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs only, an AP2 artifact with execution_hash is exported, and the FV-status snapshot verifies offline independently. The compute-mode/delegation paragraph largely duplicates the schema, but the data-handling and provenance disclosures are real added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode semantics are stated twice (once in prose, again in the schema) and the FV-status receipt sentence is a verbose run-on about offline verification. It is front-loaded with the tool identity, but several sentences do not earn their place for an agent trying to decide whether to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description does cover data handling, compute modes, the exported artifact, and the downstream consumer. However, for a routing/compliance tool with a nested policy_parameters object, it never describes what the routing decision covers or how to pick it over the adjacent jurisdiction-routing sibling, leaving a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the enum on 'compute' is fully documented in the schema, so the baseline is 3. The description restates the compute-mode semantics that the schema already provides and says nothing about parent_hashes, parent_tool_ids, or how policy_parameters fields are supplied, adding no meaning beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line name the resource ('Arc Multi-Currency Corridor Jurisdiction Router') and classify it as an OpenChainGraph compliance_mandate compute node, but the description never plainly states what decision the tool produces or how its routing differs from siblings like score_partner_stablecoin_readiness or route_einvoice_jurisdiction_mandate. Purpose is inferable from the name/title rather than explained, which is the definition of a vague-purpose 3.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage signal is the downstream pointer 'Output feeds: 511-multi-currency-pvp-validator,' which describes where output goes, not when to select this tool. There is no when-to-use, no prerequisites, and no comparison against the many sibling routing/scoring tools. No meaningful selection guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

route_vida_oss_registrationViDA OSS Registration RouterB
Read-onlyIdempotent
Inspect

ViDA OSS Registration Router: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-162-vida-platform-deemed-supplier-classifier. Output feeds: art-164-vida-compliance-readiness-diagnostic. Open at: https://ainumbers.co/chaingraph/art-163-vida-oss-registration-router.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint/destructiveHint already supplied, the description still adds meaningful behavior: deterministic server-side execution on Workers, that gpu:true nodes always delegate to the browser, transient non-stored processing, a 'synthetic/anonymised inputs only' constraint, and an AP2 artifact with execution_hash export. The only weak point is that the FV-status sentence is largely boilerplate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It repeats the tool name and title verbatim at the start, and the long FV-status hash URL consumes space without helping selection. The compute-binding and chain-provenance sentences do earn their place, but the block is dense and not cleanly front-loaded on the tool's actual function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-output-schema compute node with nested policy_parameters and chain inputs, the description covers chain wiring and execution semantics well, but leaves the entire decision payload (policy_parameters field names) to an external manifest, which is a real gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute modes, parent_hashes/parent_tool_ids ordering, and policy_parameters. The description adds only the 'see the tool's manifest for field names' pointer, which widens rather than closes the gap on what policy_parameters must contain — baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (compliance_mandate)' router for ViDA OSS registration, which is a specific resource, but it never states what the routing/decision actually decides. Most of the text is family boilerplate about compute binding rather than the tool's specific purpose, so an agent must infer the function from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives genuine pipeline context (consumes art-162 deemed-supplier-classifier output, feeds art-164 readiness diagnostic) and explains the compute-mode selection, but never says when to choose this router over a sibling such as run_vida_readiness_diagnostic or assess_vida_drr_reporting_obligation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_401k_adp_acp_test401(k) ADP/ACP Nondiscrimination TesterC
Read-onlyIdempotent
Inspect

401(k) ADP/ACP Nondiscrimination Tester: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-302-401k-adp-acp-test.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
acpNo
adpNo
errorNo
methodNo
all_tests_passNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, and the description adds material behavioral context: transient processing with no storage, logging, or retention, the requirement for synthetic inputs only, and the export of an AP2 artifact with execution_hash for chain provenance. This goes meaningfully beyond the annotation set, though it says nothing about determinism failures or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a run-on block mixing platform boilerplate, a documentation URL, a long FV-status JSON path, and a philosophical note about snapshots versus subscriptions. The actual purpose gets one clause before the filler begins, so it is neither front-loaded nor economical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but for a domain-specific compliance compute node whose policy_parameters are deferred to an external manifest ('See the tool's manifest for field names'), the description provides no indication of what inputs the ADP/ACP test expects. For a 4-parameter, nested-object tool this leaves a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description mirrors the compute-mode enum but adds no extra meaning for parent_hashes ordering or the opaque policy_parameters object, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('401(k) ADP/ACP Nondiscrimination Tester') and labels it an 'OpenChainGraph compute node (compliance_mandate)', which confirms the resource but never explains what the ADP/ACP test actually computes or how it relates to domain siblings like run_section125_ndt or run_audit_recalc_suite. The name is specific, but the description adds essentially no differentiating substance beyond the platform category.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It does describe compute-mode selection ('auto' default, 'browser' forces client-side, gpu:true always delegates) and warns to use synthetic/anonymised inputs, which is some contextual guidance. However there is no indication of when to reach for this tool versus alternative compliance-test nodes, and no prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_agent_economy_fitAgent Economy Runtime Fit DiagnosticB
Read-onlyIdempotent
Inspect

Agent Economy Runtime Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-61-x402-batch-settlement-reconciler, art-62-ap2-payment-receipt-verifier, art-63-agent-service-metering-modeler, art-02-agent-spend-policy-simulator, mms-03-app-fraud-graph, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-60-agent-economy-runtime-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
dim_scoresNo
hnp_risk_flagNo
overall_gradeNo
overall_scoreNo
remediation_checklistNo
primary_recommendationNo
secondary_recommendationsNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context beyond them: transient processing with no storage/logging/retention, server-side vs browser delegation behavior, the gpu:true always-delegates rule, and the AP2 artifact/execution_hash side effect. This is substantive disclosure that the annotations alone would not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is a title restatement rather than a task statement, and the single paragraph crams compute semantics, data-handling policy, downstream feeds, a documentation URL, and an FV-status hash together. Nothing is wasted in isolation, but the lack of front-loading and sectioning makes it denser than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and it does cover the operationally important gaps: execution location, ephemerality, provenance export, and downstream consumers. The remaining hole is the vague statement of what the diagnostic actually assesses, which is a meaningful but not fatal omission for a compute node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description reinforces the compute-mode semantics and the chaining intent of execution_hash, but adds little syntax or field-level meaning beyond the schema, matching the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (an 'Agent Economy Runtime Fit Diagnostic' / OpenChainGraph compute node) but never states concretely what the diagnostic evaluates or returns. The verb is essentially 'compute', restated as a runtime fit diagnostic, and the bulk of the text covers execution mechanics rather than purpose, so an agent cannot easily distinguish what makes this different from siblings like run_agentic_readiness_diagnostic or run_ai_governance_fit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives useful operating guidance for the compute mode (auto vs server vs browser) and warns to use synthetic/anonymised inputs only, plus lists downstream consumers. However, it never says when to choose this diagnostic over the many other *_fit / readiness diagnostics in the sibling list, leaving tool selection largely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_agentic_readiness_diagnosticAgentic Payments Readiness DiagnosticA
Read-onlyIdempotent
Inspect

Agentic Payments Readiness Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-15-agentic-mandate-sandbox, art-16-google-ap2-mandate-builder, art-17-ap2-mcp-policy-validator, art-18-mcp-developer-readiness-scorecard. Open at: https://ainumbers.co/chaingraph/art-27-agentic-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint already declaring the safety profile, the description adds real value beyond annotations: transient processing with no storage, logging or retention; deterministic server-side vs browser delegation (including gpu:true always delegating); and an exported AP2 artifact carrying execution_hash for chain provenance. It does not contradict any annotation, though it stops short of describing the returned diagnostic verdict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is decent (purpose, then compute behavior, then outputs), but the text is dense with duplicated framing ('OpenChainGraph compute node' restated as 'Deterministic OpenChainGraph compute node') and restates compute modes already in the schema. The trailing spec URL and a 64-character FV-status hash consume substantial space for marginal selection value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description is right to mention the exported AP2 artifact and execution_hash, and it covers input handling, execution locality and downstream consumption. The remaining gap is that the diagnostic's actual evaluation semantics and result shape are never characterized, which matters for a tool taking an opaque policy_parameters object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters thoroughly (including the enum). The description reinforces the compute-mode semantics and the chaining role of execution_hash but adds no syntax or format detail the schema lacks, so baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name, title and opening phrase establish a specific verb+resource ('readiness diagnostic') and the description places it in a chain by naming the downstream consumers (art-15-agentic-mandate-sandbox through art-18) and its identifier (agent_guardrail_mandate). However, the description never actually says what the diagnostic assesses or what decision it renders, so an agent learns the plumbing rather than the purpose. It is distinguishable from generic siblings mainly via the output-feed list, not via a stated scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is one hard usage constraint ('Use synthetic or anonymised inputs only') plus the compute-mode selection guidance, which is useful. But there is no when-to-use/when-not guidance against the many sibling diagnostics (run_arc_fit_diagnostic, run_dora_readiness_diagnostic, run_vida_readiness_diagnostic), so the routing decision is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_ai_act_highrisk_fitEU AI Act High-Risk Fit & Classification DiagnosticC
Read-onlyIdempotent
Inspect

EU AI Act High-Risk Fit & Classification Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-65-ai-conformity-pack-builder, art-66-fria-postmarket-monitoring-builder, art-67-agentic-ai-risk-classifier, art-05-eu-ai-act-credit-scoring-conformity, 452-fair-lending-ai-bias-assessment, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-64-ai-act-highrisk-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
roleNo
dim_scoresNo
overall_gradeNo
overall_scoreNo
annex_iii_basisNo
applicable_dateNo
do_now_checklistNo
ai_literacy_gradeNo
high_risk_verdictNo
gpai_applicabilityNo
primary_recommendationNo
prepare_ahead_checklistNo
secondary_recommendationsNo
prohibited_practice_verdictNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description still adds real behavioral context: inputs are processed transiently and not retained, gpu:true nodes always delegate to the browser, compute:'browser' returns a delegation URL instead of a result, and the output is an AP2 artifact carrying execution_hash for provenance. That is meaningful beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title is restated verbatim in the first clause, and a large share of the text is reusable boilerplate about compute binding, transient processing, and FV-status receipts that does not help select or invoke this specific tool. The genuinely useful scoping information (it is a fit/classification diagnostic feeding art-65/art-66/art-67 builders) is buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return shape need not be described. The description does cover execution mechanics and provenance honestly, but for a classification diagnostic it omits the most important context: what inputs it expects in policy_parameters and what determination the caller gets back, leaving it only minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the compute enum and the parent_hashes/parent_tool_ids chaining semantics, so the baseline is 3. The description restates compute:'auto'/'browser' behavior (already in the schema) and delegates the actual decision inputs to 'the tool's manifest for field names,' which is a gap but not a schema-undocumented one.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line does name the resource ('EU AI Act High-Risk Fit & Classification Diagnostic'), so the agent can guess this is a classification screen, but the rest of the sentence is infrastructure boilerplate ('OpenChainGraph compute node (agent_guardrail_mandate)'). It never says what the diagnostic actually returns (risk tier? obligations?), and it does not distinguish itself from near-siblings like classify_agentic_ai_risk, art-67-agentic-ai-risk-classifier, or assess_ai_act_conformity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance. The 'Output feeds:' list names downstream consumers, which hints at pipeline placement, but that is ordering information, not selection guidance against the many sibling AI-Act tools. The agent is left to infer applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_ai_governance_fitAI Governance Readiness DiagnosticA
Read-onlyIdempotent
Inspect

AI Governance Readiness Diagnostic: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-175-gpai-code-of-practice-conformance. Open at: https://ainumbers.co/chaingraph/art-176-ai-governance-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
fully_readyNo
dimensions_metNo
readiness_gradeNo
readiness_scoreNo
dimensions_totalNo
frameworks_addressedNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description adds real value beyond them: transient processing with no storage/logging/retention, deterministic execution, server-vs-browser delegation behavior, and export of a provenance artifact. It stops short of stating auth requirements or failure modes, keeping it out of the top band.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the definition is dense with boilerplate — a raw URL, an FV-status hash, and repeated compute-binding mechanics — that consumes attention without helping the agent invoke the tool. Several clauses could be trimmed without losing actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter chained compute node with an output schema, the description covers the compute modes, upstream chaining inputs, privacy constraints, and the exported artifact, so an agent has enough to call it. It lacks explicit routing guidance against sibling fit diagnostics, which is the main remaining gap given the crowded sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description re-explains compute mode semantics already present in the schema and mentions chaining via upstream artifacts, adding modest context but no new syntax or field-level detail. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line state a specific outcome — an AI governance readiness diagnostic that produces an AP2 artifact with execution_hash and consumes an upstream conformance artifact. That is a clear verb+resource. However, it never distinguishes itself from the many near-identical siblings (run_ai_act_highrisk_fit, run_dora_readiness_diagnostic, run_agent_economy_fit), so an agent cannot tell which fit diagnostic to pick from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use/when-not guidance relative to the run_*_fit and readiness siblings. The description does implicitly constrain usage by naming the upstream artifact it consumes (art-175-gpai-code-of-practice-conformance) and instructing 'Use synthetic or anonymised inputs only', which tells the agent when the tool is applicable, but selection among alternatives is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_arc_fit_diagnosticArc Fit DiagnosticB
Read-onlyIdempotent
Inspect

Arc Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-43-arc-cpn-model, art-44-arc-stablefx-model, art-45-arc-xreserve-linter, art-46-arc-paymaster-model, art-47-arc-cctp-transfer. Open at: https://ainumbers.co/chaingraph/art-42-arc-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantive behavior: transient processing with no storage, logging or retention, an execution_hash export for chain provenance, and the browser-delegation URL behavior. It also clarifies the FV-status receipt is an offline-verifiable snapshot, not a subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening repeats the title verbatim as a label and then repeats 'Deterministic OpenChainGraph compute node' twice, which wastes the highest-attention position. The remaining sentences are dense and useful, but the front-loading is poor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden and does cover the return artifact (AP2 artifact with execution_hash), downstream consumers, and the doc URL. The gap is that the actual decision/diagnostic content is still unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute modes already given in the schema and adds nothing for how policy_parameters field names are discovered beyond pointing to 'the manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It identifies the tool as an OpenChainGraph compute node producing an AP2 artifact, but never says what an 'arc fit diagnostic' actually assesses — the resource being diagnosed is opaque. With many sibling run_*_fit_diagnostic tools (run_tempo_fit_diagnostic, run_robinhood_chain_fit_diagnostic), there is no differentiation of what makes this one distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real operational guidance (compute modes, use synthetic inputs only, output feeds into art-43 through art-47), which implies sequencing after upstream artifacts. But there's no explicit when-to-use/when-not phrasing or routing to alternatives among the fit-diagnostic siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_audit_recalc_suiteAudit Recalculation SuiteB
Read-onlyIdempotent
Inspect

Audit Recalculation Suite: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-463-recalc-suite.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
epsNo
total_itemsNo
amortizationNo
depreciationNo
flagged_countNo
categories_runNo
tolerance_usedNo
interest_accrualNo
prepaid_rollforwardNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already declare readOnly/idempotent/non-destructive/closed-world), the description adds real behavioral context: deterministic execution, server-vs-browser delegation with a returned URL for gpu:true or compute:'browser', transient processing with no storage/logging, and an exported AP2 artifact carrying execution_hash. That is a meaningful layer an agent cannot infer from the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with tool identity and node type, which is good, but the compute-binding paragraph re-states the schema enum almost verbatim (wasteful at 100% coverage) and the trailing FV-status sentence is a long, hash-laden aside inside a receipt-provenance note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-shape explanation is not required, and annotations carry the safety profile. The description covers the non-obvious mechanics (delegation URL, transient data, provenance artifact), leaving only minor gaps about the decision function's inputs which the manifest pointer partially addresses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode sentence duplicates the enum description rather than extending it, and the chaining/execution_hash mention is the only added semantic value. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a deterministic OpenChainGraph compute node in the compliance_control domain and explains its compute mechanics, but never says what audit recalculation it actually performs. 'Audit Recalculation Suite' largely restates the title, and nothing distinguishes it from the many other recompute/compute siblings such as rdarr_aggregation_recompute or run_kernel_vm.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a hard constraint ('use synthetic or anonymised inputs only') but gives no when-to-use trigger and no guidance on choosing this tool over any sibling. The compute-mode note explains a parameter rather than when an agent should reach for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_call_report_edit_checksCall Report Published Edit-Check GateC
Read-onlyIdempotent
Inspect

Call Report Published Edit-Check Gate: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-432-call-report-rc-balance-sheet, art-433-call-report-rcr-capital. Open at: https://ainumbers.co/chaingraph/art-434-call-report-edit-check-gate.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
entity_idNo
check_countNo
gate_statusNo
report_formNo
coverage_noteNo
all_fatal_passedNo
reporting_periodNo
fatal_failure_countNo
warning_failure_countNo
rounding_tolerance_usdNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior: server-side vs browser compute modes, the browser delegation URL behavior for gpu:true nodes, transient non-retained input processing, and export of an AP2 artifact carrying execution_hash for chain provenance. It stops short of describing failure modes or what happens if the parent hash chain is invalid, so it is strong rather than exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, but the bulk of the text is infrastructure boilerplate, a marketing/trust paragraph, a long FV-status URL with a full hash, and a 'snapshot, not a subscription' disclaimer that do not help an agent decide or invoke the tool. A large fraction of the words do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description adequately covers chain provenance and compute-mode behavior for a complex node tool. What is missing is the substantive contract: which Call Report edit checks are performed, what inputs the decision function requires, and how to route here versus the sibling schedule-mapping tools. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids, and policy_parameters are all documented in the schema itself. The description mainly restates compute semantics that the schema already gives verbatim and punts policy_parameters field names to 'the tool's manifest', adding little beyond the structured data. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node in the 'regulatory_reporting' domain named 'Call Report Published Edit-Check Gate', and it names the upstream artifacts it consumes (Call Report RC balance sheet, RCR capital) plus the artifact it exports. However, it never plainly states what the check actually validates or produces beyond the name restatement, and it does not differentiate itself from close siblings such as run_regrpt_edit_checks or map_call_report_schedule_rc/rcr. Purpose is inferable but not crisply stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives, no prerequisites (e.g., that upstream artifacts must exist first), and no mention of the sibling tools covering related Call Report schedules. The only usage-adjacent content is the 'synthetic or anonymised inputs only' caution, which is a data-handling rule rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_carbon_compliance_fitCarbon & Climate Compliance Fit DiagnosticB
Read-onlyIdempotent
Inspect

Carbon & Climate Compliance Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-69-cbam-embedded-emissions-calculator, art-72-cbam-precursor-emissions-aggregator, art-73-taxonomy-alignment-scorer, art-75-eugb-factsheet-validator, art-76-climate-scenario-applicator, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-68-carbon-compliance-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
dim_scoresNo
overall_gradeNo
overall_scoreNo
eugb_readinessNo
taxonomy_scopeNo
cbam_dual_statusNo
do_now_checklistNo
cbam_declarant_verdictNo
primary_recommendationNo
cbam_declarant_requiredNo
prepare_ahead_checklistNo
climate_stress_applicableNo
secondary_recommendationsNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial extra context: server vs browser compute delegation, transient processing with no storage or logging, a synthetic-inputs-only constraint, and an AP2 artifact with execution_hash for provenance. These are real behavioral disclosures beyond the annotations, though the deterministic-output guarantee is only asserted, not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the title, but then it runs long with infrastructure boilerplate, a full URL, a long list of six downstream tool IDs, and an FV-status receipt URL/label. Several sentences are about verification plumbing rather than helping an agent call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full annotations, and 100% schema coverage, the description only needs to add chaining and data-handling context, which it does (parent_hashes chaining, transient processing, AP2 export). The one gap is the opaque policy_parameters contract, which is delegated to an off-tool manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes the compute-mode semantics but adds nothing about the chaining params, and it defers field names for policy_parameters to an external manifest. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a specific verb+resource (run a Carbon & Climate Compliance Fit diagnostic), and the downstream consumer list hints at scope (CBAM, taxonomy, EUGB, climate scenarios). However, the description itself spends its words on compute-node mechanics rather than what the diagnostic actually assesses, so an agent learns more about the execution substrate than the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance. The 'Output feeds' list implies chaining context but does not say when to pick this tool over siblings like run_eudr_readiness_fit or apply_climate_scenario. Usage has to be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_chainRun a whole ChainGraph chain in one callA
Read-onlyIdempotent
Inspect

Executes every step of a named chain (list names with find_chain / build_workflow_links) and returns ONE composite artifact whose execution_hash anchors all step outputs. compute:"server"/"auto" (default) runs each kernel-backed step server-side, threading step N's execution_hash into step N+1's parent_hashes; compute:"browser" returns a zero-egress delegation bundle (composer URL + ordered deep-links) to run client-side instead — no data leaves the agent. Supply inputs as a map of step tool_id -> policy_parameters (field names per node manifest / build_chaingraph); a step whose kernel needs inputs you omit is reported per-step (status "input_required"), never failed silently. Steps that are browser-only (gpu:true or no registered kernel) are listed for browser delegation. Deterministic, zero PII, zero payload logging. Verify the result with verify_execution_hash. Each server-mode run also returns an OpenTelemetry GenAI span document as a resource link (one execute_tool span per executed step under an invoke_agent parent). Response includes a ledger_url fragment link for human verification at ledger.ainumbers.co.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesChain name, e.g. "agent-commerce-conformance". List names with find_chain or build_workflow_links.
inputsNoMap of step tool_id -> policy_parameters overrides. Omitted steps run with {} (kernels needing required fields are reported, not failed silently).
computeNo"auto"/"server" (default) runs kernel-backed steps server-side; "browser" returns a zero-egress delegation bundle to run client-side.
mandateNoOptional §22 Work Mandate artifact. When supplied: §16 signature is verified and validity window is checked (unsigned/bad-sig/expired returns a structured error); mandate_hash is folded into every step and the composite receipt as a conditional-presence key, proving which policy governed this run. A no-mandate run is byte-identical to the pre-binding baseline (linear-hash-freeze invariant).
escalation_transportNoHow an OCG §22.8 escalation is delivered. "resolve_handle" (DEFAULT) never blocks: the run COMPLETES with status "escalated" plus the open record, its record_hash and a resolve handle, and a human closes it out of band. "input_required" opts into the SEP-2322 multi-round-trip: the call answers with an InputRequiredResult asking for the §22.8.4 closure, and the retry (echoing requestState) resolves the record inline.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive, and the description goes well beyond them: it explains server vs browser compute modes, zero-egress delegation, per-step input_required reporting instead of silent failure, browser-only step handling, determinism, zero PII, zero payload logging, OpenTelemetry span documents, and ledger_url verification. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but densely informative and front-loaded with the core purpose and return artifact. Some details, such as the OpenTelemetry span document and ledger_url, extend beyond the minimum but are relevant given there is no output schema. It is not bloated relative to the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining results, and it does so thoroughly: composite artifact, execution_hash anchoring, per-step input_required statuses, browser delegation bundle, browser-only step handling, verification path, OpenTelemetry span, and ledger_url. It also explains what happens with omitted inputs and how to discover chain names, making the tool actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds behavioral meaning beyond the schema: inputs are a map of step tool_id to policy_parameters with per-step failure reporting, compute modes are tied to kernel-backed vs browser-only execution, and escalation_transport behavior is clarified. This adds interpretive value without replacing the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it executes every step of a named chain and returns a single composite artifact anchored by an execution_hash. It also distinguishes itself from sibling listing tools by naming find_chain and build_workflow_links as the way to discover chain names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: run a full named chain in one call, with discovery via find_chain/build_workflow_links and verification via verify_execution_hash. It does not explicitly discuss when NOT to use it versus a single-step or alternative tool, so it stops short of a full exclusionary guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_digital_trade_fitDigital Trade Corridor Fit DiagnosticB
Read-onlyIdempotent
Inspect

Digital Trade Corridor Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-53-mletr-ebl-conformance-validator, art-54-digital-trade-rules-checker, art-55-trade-document-provenance-verifier, 509-canton-party-allowlist-validator, art-10-amla-transaction-typology-risk-scorer, ml-02-credit-default-risk-scorer, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-52-digital-trade-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
dim_scoresNo
overall_gradeNo
overall_scoreNo
remediation_checklistNo
primary_recommendationNo
secondary_recommendationsNo
corridor_enforceability_flagNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), it discloses that inputs are processed transiently and not stored or logged, that synthetic/anonymised inputs are required, that execution defaults to server-side vs browser delegation, and that an AP2 artifact with execution_hash is exported. This is meaningful operational context the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and compute-mode behavior are front-loaded, but the text is bloated with repeated 'OpenChainGraph compute node' phrasing, a long downstream-feed list, and a full FV-status hash URL that reads as boilerplate rather than decision-relevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter node with an output schema, the chaining inputs, compute routing, privacy posture and artifact export are covered, and return values need not be explained. However, the definition never says what the digital trade corridor fit result represents, which is the core information an agent needs to judge applicability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids and policy_parameters are already documented in the schema. The description restates the compute-mode default and confirms chaining semantics, adding marginal clarification but no new field-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as the 'Digital Trade Corridor Fit Diagnostic' and an OpenChainGraph compute node, but never states what the diagnostic actually evaluates or what a 'fit' verdict means. Against siblings like run_agent_economy_fit and run_ai_act_highrisk_fit, it does distinguish itself as the digital-trade-corridor variant, but the substantive purpose is left to the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It lists downstream consumers of the output ('art-53-mletr-ebl-conformance-validator', etc.), which hints at positioning, but gives no when-to-use or when-not-to-use guidance relative to the many sibling run_*_fit tools. An agent has no explicit condition for selecting this over run_eudr_readiness_fit or check_digital_trade_rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_dora_readiness_diagnosticDORA Readiness DiagnosticB
Read-onlyIdempotent
Inspect

DORA Readiness Diagnostic: OpenChainGraph compute node (infrastructure_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-09-dora-incident-classifier, pnr-01-dora-ict-cascade-simulator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-29-dora-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
gradeNo
score_pctNo
gaps_countNo
grade_titleNo
all_answeredNo
domain_scoresNo
regulatory_frameworkNo
supervisory_exposureNo
applicable_deadline_noteNo
immediate_action_requiredNo
incident_route_recommendedNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral context beyond them: deterministic execution, transient processing with no storage or logging, server-side vs browser delegation semantics, and export of an AP2 artifact with execution_hash for provenance. This is genuinely useful disclosure, though it omits any mention of latency, rate limits, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is dense with template boilerplate (FV-status hash, snapshot-vs-subscription disclaimer, external URL) that crowds out the actual purpose. Useful content (compute semantics, data handling, downstream consumers) is present but not front-loaded ahead of the infrastructure framing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be spelled out, and annotations cover the safety profile. However, for a diagnostic tool with a nested, undocumented policy_parameters object, the description should indicate what inputs the readiness evaluation expects and what it concludes — neither is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids; the description's compute-mode explanation largely duplicates the enum description. The opaque policy_parameters object is deferred with 'See the tool's manifest for field names', which adds nothing the caller can act on.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (DORA readiness diagnostic) and identifies it as an OpenChainGraph compute node, but never states what the diagnostic actually assesses or returns beyond the boilerplate 'compute node' framing. It partially differentiates from siblings by listing downstream consumers (art-09-dora-incident-classifier, pnr-01-dora-ict-cascade-simulator), but an agent still cannot tell what the DORA readiness evaluation covers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to invoke this tool versus the many adjacent readiness/fit tools (run_agentic_readiness_diagnostic, run_mica_casp_fit, run_t1_readiness_diagnostic). The only directive is 'Use synthetic or anonymised inputs only', which is a data-handling constraint rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_emir_reporting_fitEMIR Reporting Readiness DiagnosticC
Read-onlyIdempotent
Inspect

EMIR Reporting Readiness Diagnostic: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-157-emir-lifecycle-event-validator. Open at: https://ainumbers.co/chaingraph/art-158-emir-reporting-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, but the description adds genuinely useful behavior beyond them: compute routing semantics (auto/server vs. browser delegation for gpu:true nodes), the data-handling guarantee that inputs are processed transiently and not stored or logged, the synthetic-only input constraint, and the emission of an AP2 artifact with execution_hash. These are real operational disclosures, though several sentences are generic node boilerplate rather than tool-specific.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entry is bloated and back-loaded: the actual purpose is a fragment while compute-mode explanation, a rules URL, and a long FV-status receipt path occupy most of the text. Several sentences restate what the schema already says about compute modes, and the 'deterministic OpenChainGraph compute node' phrase is redundant filler. It is not front-loaded around the diagnostic's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with a nested policy_parameters object and no output schema, the description does disclose the return side (an AP2 artifact with execution_hash) and an upstream dependency, which is more than many peers. But it defers the substantive inputs to 'the tool's manifest' and provides no insight into the decision logic, so it is only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description adds no parameter meaning beyond what the schema provides (and even omits the chaining parameters entirely, leaving them to the schema). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the tool ('EMIR Reporting Readiness Diagnostic') and its resource domain, so an agent can roughly tell it apart from other run_*_fit siblings by the EMIR subject matter. However, it never states in plain terms what the diagnostic actually does or evaluates — it immediately pivots to 'OpenChainGraph compute node' infrastructure boilerplate. The purpose is largely carried by the title rather than substantively described.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to invoke this tool versus alternatives, no prerequisites, and no exclusions. The only routing signal is 'Consumes upstream artifacts from: art-157-emir-lifecycle-event-validator', which hints at an input dependency but not when/why to use the tool. Among a large family of run_*_fit / readiness siblings, this leaves selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_eudr_readiness_fitEUDR Readiness DiagnosticB
Read-onlyIdempotent
Inspect

EUDR Readiness Diagnostic: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-169-eudr-supply-chain-traceability-linker. Open at: https://ainumbers.co/chaingraph/art-170-eudr-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
fully_readyNo
dimensions_metNo
readiness_gradeNo
readiness_scoreNo
dimensions_totalNo
enforcement_deadlinesNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds meaningful behavioral context beyond them: compute-mode semantics, server-side vs browser delegation, transient processing with no logging or retention, and the AP2 export with execution_hash for chain provenance. That is real disclosure the structured fields do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool identity but then spends most of its length on compute-binding boilerplate that duplicates the schema's own compute description, plus a long FV-status receipt sentence. The content is structured, but a significant share of it does not earn its place relative to the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers retention, chaining, and compute routing. However, for a diagnostic whose decision inputs live in an opaque policy_parameters object, the description gives no indication of what inputs are expected or what the readiness verdict covers, leaving the core task underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description only re-summarizes compute modes (already in the enum description) and pushes policy_parameters field names off to a manifest, adding little parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the tool as a 'compliance_mandate' compute node and wraps the title 'EUDR Readiness Diagnostic', but never states what the diagnostic actually evaluates or what a caller gets back beyond a generic AP2 artifact. The agent learns the plumbing (server/browser compute, chaining, export) rather than the purpose, and no sibling among the many run_*_fit or *_eudr_* tools is distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage directive is 'Use synthetic or anonymised inputs only', plus a note that it consumes upstream artifacts from art-169-eudr-supply-chain-traceability-linker. There is no guidance on when to choose this tool versus classify_eudr_commodity_scope, score_eudr_country_risk, validate_eudr_due_diligence_statement, or the other readiness diagnostics, and no prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_illustration_selfsupport_testLife Illustration Self-Support Test (NAIC Model 582)B
Read-onlyIdempotent
Inspect

Life Illustration Self-Support Test (NAIC Model 582): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-254-compute-rbc-action-level. Open at: https://ainumbers.co/chaingraph/art-253-run-illustration-selfsupport-test.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
pii_noteNo
total_coiNo
face_amountNo
table_sourceNo
table_versionNo
cumulative_netNo
total_expensesNo
total_interestNo
total_premiumsNo
not_legal_adviceNo
regulatory_basisNo
self_support_passNo
account_value_yr15No
account_value_yr20No
illustration_validNo
lapse_support_flagNo
policy_years_providedNo
lapse_adjusted_av_yr20No
self_support_yr15_passNo
self_support_yr20_passNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds meaningful context beyond them: transient processing with no storage/logging/retention, deterministic execution, server vs. browser delegation semantics, and the AP2 artifact + execution_hash provenance output. It stops short of describing runtime limits or failure behavior, so a 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title and compute-mode semantics are front-loaded, which is good, but the paragraph is dense with infrastructure jargon and includes two long URLs plus FV-status receipt boilerplate ('a snapshot, not a subscription...') that consume space without helping an agent select or call the tool. Mildly over-long and repetitive ('OpenChainGraph compute node' stated twice).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description does cover compute routing, data handling and provenance. What is missing is the substantive meaning of the test itself and what policy_parameters should contain, which are relevant to invoking it correctly for a compliance computation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — compute, parent_hashes, parent_tool_ids and policy_parameters are all documented in the schema, so the baseline is 3. The description reinforces the compute-mode semantics and the chain-provenance role of execution_hash, but adds no field-level meaning the schema lacks, and punts policy field names to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title identifies a specific regulatory function (NAIC Model 582 Life Illustration Self-Support Test) and the body labels it a 'compliance_mandate' compute node. However, the description never explains what the test actually evaluates or computes, spending its words on compute-infrastructure mechanics instead. It names the downstream consumer (art-254-compute-rbc-action-level), which gives partial sibling differentiation, but the core purpose is only inferable from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage direction is 'Use synthetic or anonymised inputs only', plus a detailed explanation of when 'auto'/'server'/'browser' resolve. There is no guidance on when an agent should invoke this test versus running a different compliance compute node, and no stated preconditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_insurance_reporting_fitInsurance Reporting Readiness DiagnosticC
Read-onlyIdempotent
Inspect

Insurance Reporting Readiness Diagnostic: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-181-sii-ifrs17-reconciliation-bridger. Open at: https://ainumbers.co/chaingraph/art-182-insurance-reporting-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
fully_readyNo
dimensions_metNo
readiness_gradeNo
readiness_scoreNo
dimensions_totalNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false/openWorldHint=false, but the description adds real behavioral context beyond them: server-side execution on Cloudflare Workers for gpu:false nodes, browser delegation for gpu:true, transient processing with no storage or logging, an 'explicit synthetic/anonymised inputs only' constraint, and AP2 artifact export with execution_hash for provenance. That is genuinely useful information an agent could not infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense run-on that mixes branding, compute mechanics, a privacy notice, provenance notes, a documentation URL, and a 64-character FV-status hash path. The core purpose is relegated behind 'OpenChainGraph compute node' boilerplate, and the hex receipt string does not earn its place in a tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and an output schema present, the safety profile and return shape are covered elsewhere, and the description adequately explains compute routing, privacy handling and provenance chaining. What remains missing is any indication of what inputs the diagnostic actually needs (policy_parameters is opaque) and when this diagnostic is the right one among dozens of similar readiness tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description mostly restates the compute enum and does not add field-level meaning beyond it; it points to 'the tool's manifest' for policy_parameters fields rather than clarifying them. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name states the resource ('Insurance Reporting Readiness Diagnostic') but the description itself never explains what the diagnostic assesses or against which regime — it opens with boilerplate about being a 'compute node (compliance_mandate).' It does not differentiate this tool from the many close siblings (run_emir_reporting_fit, run_irrbb_disclosure_fit, run_dora_readiness_diagnostic). The only concrete signal is the upstream artifact name art-181-sii-ifrs17-reconciliation-bridger.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to choose this tool over alternatives, no prerequisites, and no exclusions. The only conditional guidance is parameter-level (compute:'auto' vs 'browser'), which is invocation mechanics rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_irrbb_disclosure_fitIRRBB Disclosure Readiness DiagnosticB
Read-onlyIdempotent
Inspect

IRRBB Disclosure Readiness Diagnostic: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-187-irrbb-csrbb-scope-checker. Open at: https://ainumbers.co/chaingraph/art-188-irrbb-disclosure-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
fully_readyNo
dimensions_metNo
readiness_gradeNo
readiness_scoreNo
dimensions_totalNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, but the description adds real behavioral context: server-side vs client-side execution routing, forced browser delegation URLs, transient non-retention of inputs, and an AP2 artifact export carrying execution_hash for provenance. It stops short of covering auth requirements, rate limits, or failure modes, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, which is good, but the rest is a dense single paragraph mixing compute routing, data-handling policy, artifact chaining, and a verbose FV-status snapshot/hash sentence. Several clauses (the snapshot-not-a-subscription caveat, the raw URL) are low-value for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the infra mechanics (compute modes, chaining, provenance, retention) are well covered. What is missing is domain substance: the actual IRRBB disclosure criteria the diagnostic evaluates and the policy_parameters fields, which it explicitly pushes to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description mostly repeats the compute-mode semantics already in the schema and defers the policy_parameters field names to an external manifest, adding little meaning beyond structured data; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause largely restates the title ("IRRBB Disclosure Readiness Diagnostic") and labels the node type ("OpenChainGraph compute node (compliance_mandate)"), but never says what the diagnostic actually evaluates or checks. The domain is inferable from the name, yet the body text describes infrastructure rather than the tool's purpose, and it does not differentiate itself from siblings like run_ai_act_highrisk_fit or run_dora_readiness_diagnostic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is implied usage guidance: the compute-mode semantics describe when to pick "auto" vs "browser", and the description states it consumes upstream artifacts from art-187-irrbb-csrbb-scope-checker, implying it should follow that scope check. However, there is no explicit when-to-use statement, no prerequisites, and no comparison against the many sibling readiness/fit diagnostics an agent could choose instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_kernel_vmKernel VMA
Read-onlyIdempotent
Inspect

Run a ChainGraph decision kernel's compute(policy_parameters) inside a sandboxed, deterministic, in-browser QuickJS-ng WebAssembly VM (ocg-deterministic-compute@2) and return its output_payload. Demo kernel set only -- for the full catalog, use the worker's compute kernels directly. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
elapsed_msNo
output_payloadNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant context beyond annotations: sandboxed, deterministic, in-browser QuickJS-ng WebAssembly VM, client-side execution, zero PII, zero network, widget rendering. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each conveying essential information: core function, limitation, and security/UI details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, limitations, runtime environment, and security. Slight gap in not detailing how the kernel is selected or the output schema, but the latter is provided separately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, baseline is 3. The description adds minimal extra meaning beyond the schema, only mentioning that inputs are applied via AIN Bridge prefill and referencing the manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool runs a ChainGraph decision kernel's compute inside a sandboxed VM and returns the output. It distinguishes itself from siblings like 'run_chain' and explicitly notes it is for demo kernels only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: for the full catalog, use the worker's compute kernels directly. It also implies safe usage (zero PII, zero network) but does not exhaustively list when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_liquidity_stress_testLiquidity Stress Test Simulator (LCR/NSFR)B
Read-onlyIdempotent
Inspect

Liquidity Stress Test Simulator (LCR/NSFR): OpenChainGraph compute node (liquidity_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: rca-02-mica-reserve-stress, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/sim-01-lcr-nsfr-liquidity-stress-test.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lcr_p5No
n_pathsNo
nsfr_p5No
verdictNo
scenarioNo
lcr_breach_pctNo
nsfr_breach_pctNo
compliance_flagsNo
lcr_median_day30No
nsfr_median_day250No

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavior: transient processing with no storage/logging/retention, deterministic execution, AP2 artifact export with execution_hash for provenance, and downstream consumers. That is substantive context beyond the annotations, though it omits any handling of failure or error modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is dense and repetitive ('OpenChainGraph compute node' stated twice) and buries the purpose under infrastructure detail, though the compute-mode rules and provenance/footnote are reasonably organized. It is not wasteful enough to be poor, but it is not front-loaded around what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers execution mode, privacy, provenance chaining and downstream feeds, which is sufficient for an agent to invoke it. The main omission is guidance on choosing this node versus its stress/liquidity siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description adds only marginal meaning (browser mode returns a delegation URL; chaining sets chain.parent_hashes), which is roughly the baseline for a fully documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause identify it as an LCR/NSFR liquidity stress test simulator, but the body devotes most of its words to infrastructure (compute modes, Workers, FV-status) rather than stating what the simulation does. It does not distinguish itself from close siblings such as compute_lcr_nsfr_leverage or compute_stress_test_scenarios. Purpose is inferable but not sharply defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode selection (auto/server/browser, gpu:true delegation), which is mode guidance rather than tool-selection guidance. It never says when to pick this tool over the many sibling stress/liquidity compute tools, nor any prerequisite beyond 'synthetic inputs only'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_mcp_deployability_diagnosticMCP Server Deployability DiagnosticB
Read-onlyIdempotent
Inspect

MCP Server Deployability Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-18-mcp-developer-readiness-scorecard. Open at: https://ainumbers.co/chaingraph/art-28-mcp-server-deployability-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
verdictNo
score_pctNo
all_answeredNo
domain_scoresNo
is_deployableNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real value: server-vs-browser compute delegation semantics, the rule that gpu:true nodes always delegate, and explicit transient-processing/no-retention guarantees. It stops short of describing failure modes or the browser delegation URL's lifecycle, but the added context is substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entry is bloated by low-signal content: a raw FV-status SHA-256 path, a snapshot-vs-subscription disclaimer, an artifact URL, and an 'Output feeds' line, all competing with the actual tool semantics. The key compute-mode behavior is buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% parameter coverage, the description needn't explain return values, and it still covers compute modes, data handling, chaining via parent hashes, and the exported AP2 artifact/execution_hash. Missing only what the diagnostic concretely checks, which limits full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description briefly restates compute:"auto"/"browser" behavior, which is redundant, and points to 'the tool's manifest' for policy_parameters field names without adding anything the schema lacks. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource (run_mcp_deployability_diagnostic / MCP Server Deployability Diagnostic) and identifies itself as an OpenChainGraph compute node, so the agent knows it is a diagnostic computation. However, it never states what the diagnostic actually evaluates (deployability criteria, checks performed), and it does not distinguish itself from the many MCP/readiness siblings such as score_mcp_server_readiness or run_agentic_readiness_diagnostic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage-relevant statement is 'Use synthetic or anonymised inputs only', which is an input constraint, not selection guidance. There is no when-to-use-this-vs-alternatives text despite dozens of closely related run_*_diagnostic and score_mcp_* siblings that an agent would need to disambiguate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_mica_casp_fitMiCA CASP Fit DiagnosticB
Read-onlyIdempotent
Inspect

MiCA CASP Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-99-mica-transitional-deadline-router, art-100-mica-casp-authorization-readiness, art-102-crypto-asset-whitepaper-linter, art-103-mar-crypto-surveillance-readiness, art-104-tfr-travel-rule-batch-validator, art-105-mica-token-service-scoper, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-98-mica-casp-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
noteNo
dim_scoresNo
services_countNo
readiness_gradeNo
reference_versionNo
primary_recommendationNo
secondary_recommendationsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds genuinely useful behavior: transient processing with no storage/logging/retention, server-vs-browser delegation rules, and that it exports an AP2 artifact carrying execution_hash for provenance. That is meaningful disclosure beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with name and node type, but the body is padded with a long 'Output feeds' list, a raw URL, and a 64-hex FV-status URL that consume space without improving callability. Informative content is present but not tightly pruned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It covers compute-mode semantics, data-handling, and output artifacts, and an output schema exists so return values need not be explained. However, for a diagnostic whose value depends on knowing what it evaluates and how results should be used, the description leaves the core subject matter thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics ('auto'/'browser', gpu:true delegation) but adds nothing about policy_parameters field names, which it explicitly defers to 'the tool's manifest'. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title states 'MiCA CASP Fit Diagnostic', but the description itself never says what the diagnostic assesses or what it returns semantically — most of the text describes OpenChainGraph compute plumbing. An agent learns it is a compute node in the MiCA family, but not what 'fit' question it answers, and it must infer the distinction from siblings like assess_mica_casp_readiness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is 'Use synthetic or anonymised inputs only' and the compute-mode mechanics. There is no statement of when to choose this over assess_mica_casp_readiness or the other run_*_fit_diagnostic tools, nor any prerequisite/exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_model_test_batteryModel Test BatteryB
Read-onlyIdempotent
Inspect

Model Test Battery: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-489-model-test-battery.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
testsNo
back_testNo
tests_runNo
as_of_dateNo
tests_passedNo
tests_breachedNo
threshold_versionNo
thresholds_appliedNo
tests_skipped_no_thresholdNo
tests_skipped_insufficient_dataNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, not open-world). The description adds genuinely new behavior: deterministic execution, transient processing with no storage/logging/retention, browser delegation URL semantics, and chain provenance via execution_hash. That is real context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the name and node type, but then sprawls across compute modes, data handling, artifact export, a URL, and a trailing FV-status paragraph that reads like boilerplate. Several clauses (the offline-verification receipt, the raw link) are marginal for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers the important call-time semantics: compute mode, chaining via parent hashes, data-retention guarantees, and artifact export. The main gap is that the domain meaning of the tool's computation is left to the manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates compute-mode behavior but adds no syntax or format detail beyond what is already in the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as an OpenChainGraph compute node in the compliance_control family and says it exports an AP2 artifact with execution_hash. However, it never states what the 'Model Test Battery' actually computes or decides, so an agent cannot tell what output to expect beyond a generic artifact. It is largely indistinguishable from the many other run_* compute nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete guidance on the compute-mode parameter (auto/server/browser behavior and gpu:true delegation) and a constraint to use synthetic or anonymised inputs only. What is missing is any when-to-use vs. when-to-pick-an-alternative guidance among the dozens of sibling compute/run tools, leaving usage implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_pqc_timeline_fitPQC Timeline & Migration Fit DiagnosticB
Read-onlyIdempotent
Inspect

PQC Timeline & Migration Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-86-tls-pki-migration-planner, art-87-iso20022-pqc-readiness-checker, art-88-fido-pqc-conformance-checker, art-89-blockchain-quantum-risk-classifier, 499-crypto-asset-inventory-classifier, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-85-pqc-timeline-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
do_nowNo
dim_scoresNo
milestonesNo
total_scoreNo
milestone_fitNo
prepare_aheadNo
protocol_routesNo
readiness_gradeNo
reference_versionNo
primary_recommendationNo
inventory_deadline_flagNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false. The description goes beyond that by disclosing determinism, transient no-storage/no-log processing, AP2 artifact export with execution_hash, and browser-delegation behavior. These are genuine behavioral facts the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded reasonably ('OpenChainGraph compute node'), but it is a single dense paragraph mixing invocation mechanics, provenance, downstream-feed lists, and a long FV-status hash receipt. The receipt string and feed enumeration crowd out the tool's actual purpose, so sentences do not all earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so return-value description is not required. However, for a zero-required-parameter diagnostic whose real inputs live in an opaque policy_parameters object, the description omits what problem it solves and what inputs it expects, leaving the agent under-informed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics already in the schema and does not clarify the free-form policy_parameters (schema itself punts to 'the tool's manifest'), leaving the agent without field-level meaning for the actual decision inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name identify a specific artifact ('PQC Timeline & Migration Fit Diagnostic'), but the description body never explains what the diagnostic actually evaluates or what decision it produces. It spends its sentences on node infrastructure (compute modes, transient processing) rather than the tool's function, so an agent learns what the tool *is* structurally but not what it *does* analytically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is an input constraint ('Use synthetic or anonymised inputs only') and compute-mode selection, both of which are really invocation mechanics. Nothing says when to choose this diagnostic over the many similar 'run_*_fit_diagnostic' siblings (e.g. run_agentic_readiness_diagnostic) or over the adjacent plan_tls_pki_migration / compute_pqc_deadline_ladder tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_rate_shock_ladderRate Shock Ladder ReplayB
Read-onlyIdempotent
Inspect

Rate Shock Ladder Replay: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-369-run-rate-shock-ladder.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ladderNo
conventionNo
nii_12m_gapNo
buckets_usedNo
preset_shocksNo
total_net_gapNo
magnitudes_bpsNo
worst_scenarioNo
worst_delta_eveNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnly, idempotent, non-destructive, and non-open-world behavior, the description adds meaningful operational context: determinism, transient processing with no storage/logging/retention, forced browser delegation rules, and an AP2 artifact with execution_hash. It does not contradict the annotations and gives the agent useful safety and execution details beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with the tool identity and then covers compute behavior, privacy, provenance, and an FV-status URL. The compute and privacy sentences earn their place, but the repeated 'OpenChainGraph compute node' phrasing and the long FV-status snapshot URL add bloat without helping an agent select or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value details are not required. Annotations and schema together cover safety and parameter descriptions, and the description adds privacy/execution context. However, for a compute node with arbitrary policy_parameters, the description only says to see the tool's manifest for field names, leaving a meaningful gap in how the agent should populate the tool's core analytical inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including detailed descriptions for compute, parent_hashes, parent_tool_ids, and policy_parameters. The description repeats the compute mode behavior but adds no new parameter semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a deterministic OpenChainGraph compute node for a 'Rate Shock Ladder Replay' and gives an artifact/provenance context. However, it never explains what the rate shock ladder actually computes or how it differs from sibling analytics/compute tools such as calculate_irrbb_eve_shocks or evaluate_irrbb_sot_eve. The purpose is thus clear at a category level but vague about the specific analytical operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute modes (auto, server, browser) and states that only synthetic or anonymised inputs should be used. It does not say when to choose this tool over alternatives, what preconditions must hold, or which sibling tools handle related rate-shock/IRRBB tasks. The compute guidance is parameter usage guidance, not tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_regrpt_edit_checksPublished Regulatory Report Edit-Check RunnerC
Read-onlyIdempotent
Inspect

Published Regulatory Report Edit-Check Runner: OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-484-regrpt-editcheck-runner.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
summaryNo
findingsNo
rule_set_sourceNo
compliance_flagsNo
rule_set_versionNo
stale_suppressionsNo
suppressions_appliedNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new behavioral facts: inputs are processed transiently and not stored or logged, synthetic inputs are required, browser delegation returns a URL instead of a result, and an AP2 artifact with execution_hash is exported for chain provenance. That is real context beyond the annotations, though return shape and kernel availability conditions stay vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by boilerplate (OpenChainGraph node metadata repeated twice, an FV-status receipt URL and a 64-hex snapshot caveat) that does not help an agent decide or invoke. The useful content (transient processing, artifact export) is buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter compute tool with nested policy_parameters, the description never says what regulatory report edit checks it performs, what the decision function consumes, or what the artifact contains beyond an execution_hash. It is complete on operational mechanics but incomplete on the domain task the agent is selecting the tool to do.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description largely repeats the compute-mode semantics and offers nothing about policy_parameters beyond deferring to 'the tool's manifest'. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource ('Published Regulatory Report Edit-Check Runner', a regulatory_reporting compute node), so the general function is legible. However it never states what edit checks are actually run or on which report data, and it makes no attempt to distinguish itself from the near-identical sibling run_call_report_edit_checks. Purpose is identifiable but thin.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute-mode selection ('auto' vs 'browser' vs gpu delegation), which is invocation mechanics already covered by the schema enum, not when-to-use guidance. There is no statement of when this tool should be chosen over run_call_report_edit_checks or any other reporting fit/diagnostic sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_robinhood_chain_fit_diagnosticRobinhood Chain Fit DiagnosticB
Read-onlyIdempotent
Inspect

Robinhood Chain Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-317-rhc-multiplier-reconciler, art-318-rhc-regime-mapper, art-319-rhc-valuation-linter, art-320-rhc-collateral-haircut, art-321-rhc-bold-finality-classifier, art-322-rhc-ap-redemption-stress. Open at: https://ainumbers.co/chaingraph/art-323-rhc-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds substantial context: transient processing with no storage/logging/retention, a 'use synthetic or anonymised inputs only' privacy constraint, and the export of an AP2 artifact carrying an execution_hash for provenance. It also explains the gpu:true delegation behavior. The only gap is that it does not say what the diagnostic measures or returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operational details (compute modes, privacy) are front-loaded, but the entry is padded with a raw artifact URL and a long FV-status hash plus a 'snapshot, not a subscription' aside that consume space without helping tool selection. The core diagnostic purpose is buried after the compute-node and compute-mode mechanics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter compute node with nested objects and no output schema, the description covers runtime/compute behavior, data handling, artifact output, and downstream consumers. What remains missing is the substance of the diagnostic itself and any detail on policy_parameters, which it defers to an external manifest the agent cannot see here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, and the description largely restates the compute-mode semantics. For policy_parameters the description punts entirely ('See the tool's manifest for field names'), adding no field-level meaning. Baseline 3 applies when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (agent_guardrail_mandate)' and a 'Robinhood Chain Fit Diagnostic,' which gives the resource family and the artifact line it belongs to. However, it never states what 'fit' is actually being diagnosed or what decision the tool returns, so the agent cannot tell from the prose what answer it produces. The purpose is nameable but under-specified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to invoke this tool versus its obvious siblings (run_arc_fit_diagnostic, run_tempo_fit_diagnostic, run_agentic_readiness_diagnostic, map_robinhood_chain_regime). The downstream consumer list implies it should be run before the six art-* tools, but that ordering is left implicit. No exclusions or precondition guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_sanctions_screening_fitSanctions & Export-Control Screening Fit DiagnosticB
Read-onlyIdempotent
Inspect

Sanctions & Export-Control Screening Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-91-ownership-50pct-aggregator, art-92-screening-list-coverage-checker, art-93-fuzzy-match-calibration-scorer, art-94-eccn-dual-use-classifier, art-95-circumvention-diligence-assessor, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-90-sanctions-screening-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
noteNo
key_datesNo
raw_scoreNo
dim_scoresNo
always_routeNo
program_gradeNo
secondary_routesNo
reference_versionNo
primary_recommendationNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantive traits they cannot express: transient processing with no storage or logging, the difference between server-side execution and a returned browser delegation URL, that gpu:true nodes always delegate, and that an AP2 artifact with execution_hash is exported for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core compute/privacy/export sentences are front-loaded and useful, but the tail (the long downstream-feed list, the landing-page URL, and the multi-clause FV-status receipt explanation about snapshots and offline verification) is boilerplate that dilutes the signal for an agent selecting the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and annotations cover safety. The gaps are the undefined policy_parameters contract (pushed to an external manifest) and the absence of any statement about what a 'fit' result means, which leaves the agent without enough to judge fitness for a sanctions-screening task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema itself explains compute, parent_hashes, parent_tool_ids, and policy_parameters in comparable detail, so the description's compute-mode paragraph largely repeats structured data. It adds no syntax or format guidance for policy_parameters beyond deferring to an external manifest, which is the one genuinely opaque parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the domain ('Sanctions & Export-Control Screening Fit Diagnostic') and the mechanism ('deterministic OpenChainGraph compute node'), so an agent knows the subject matter. However, it never says what the diagnostic actually produces (a fit score, gap list, coverage verdict) and does nothing to distinguish it from near-identical siblings such as run_ai_governance_fit, run_arc_fit_diagnostic, or screen_sanctions_private.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is the constraint to use synthetic or anonymised inputs and the default compute mode behaviour. There is no statement of when this tool is appropriate versus screen_sanctions_private, score_sanctions_screening_quality, or build_sanctions_screening_evidence_pack, and no prerequisites or triggering conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_section125_ndt§125 Cafeteria Plan Nondiscrimination TesterC
Read-onlyIdempotent
Inspect

§125 Cafeteria Plan Nondiscrimination Tester: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-301-section125-ndt.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
benefitsNo
eligibilityNo
concentrationNo
all_tests_passNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is low, yet the description adds genuine behavior: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, and an AP2 artifact with execution_hash is exported for provenance. That privacy and output-artifact context is real value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The bulk of the text is infrastructure boilerplate, FV-status receipt URLs, and hash strings that do not help an agent select or invoke the tool. The genuinely useful purpose statement is buried inside a dense run-on paragraph rather than front-loaded cleanly, so much of the length does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, but the tool's core payload (policy_parameters for a nondiscrimination test) is waved off with 'see the tool's manifest for field names,' which the agent may never see. For a domain-specific compliance computation, the definition does not supply enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids; the description largely repeats the compute-mode semantics already in the schema. Critically, policy_parameters — the actual test inputs — is deferred to an external manifest rather than explained here, so no additional meaning is added. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the resource (§125 Cafeteria Plan Nondiscrimination) and labels the node a compliance_mandate compute node, but never states in plain terms what the test computes or returns — the operation is only implied by 'Tester'. It also does nothing to distinguish this from the very similar sibling run_401k_adp_acp_test. Purpose is inferable but vague beyond the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives; run_401k_adp_acp_test and the other run_*_fit/diagnostic siblings go unmentioned. The only usage-like content concerns compute modes and input hygiene, which are not selection guidance. An agent gets no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_slate_reporting_fitSLATE Reporting Readiness DiagnosticB
Read-onlyIdempotent
Inspect

SLATE Reporting Readiness Diagnostic: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-544-slate-report-validator. Open at: https://ainumbers.co/chaingraph/art-545-slate-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
gradeNo
readyNo
scope_noteNo
regulatory_basisNo
dimensions_passedNo
compliance_date_noteNo
obligation_checklist_versionNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds real behavioral context beyond them: transient processing with no storage/logging/retention, a requirement to use synthetic or anonymised inputs only, the compute:'auto'/'browser' execution semantics, the gpu:true delegation rule, and the AP2 artifact export with execution_hash. This is substantive disclosure an agent can act on.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The diagnostic name is front-loaded, which is good, but the body is padded with boilerplate ('Deterministic OpenChainGraph compute node' repeats the opening clause) and a long fv-status hash URL that consumes space without helping invocation. Several sentences earn their place (compute modes, transient processing); others are noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the compute/provenance mechanics are covered. But for a readiness diagnostic the description never says what the tool actually assesses or how policy_parameters feeds it ('See the tool's manifest'), leaving the core evaluation semantics opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema, including the enum values for compute. The description largely restates the compute-mode semantics and adds nothing about the field names of policy_parameters beyond pointing to the manifest. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause identify this as a 'SLATE Reporting Readiness Diagnostic' compute node, which names a resource and a diagnostic function. However, the description never states in plain terms what the diagnostic evaluates or returns, and it does not distinguish itself from the many sibling run_*_fit/readiness tools (run_emir_reporting_fit, run_mica_casp_fit, run_dora_readiness_diagnostic). The purpose is inferable but not stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no 'use this when' guidance, no prerequisites, and no comparison to alternative readiness fit tools. The only routing signal is the mention of the upstream artifact (art-544-slate-report-validator), which implies chaining but not when an agent should select this tool over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_t1_readiness_diagnosticT+1 Settlement Readiness DiagnosticB
Read-onlyIdempotent
Inspect

T+1 Settlement Readiness Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-78-csdr-penalty-calculator, art-79-settlement-fail-predictor, art-80-ssi-conformance-checker, art-81-allocation-affirmation-conformance, art-82-securities-settlement-message-linter, art-83-buy-in-exposure-modeler, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-77-t1-settlement-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
firm_typeNo
dim_scoresNo
gap_checklistNo
jurisdictionsNo
overall_scoreNo
dual_date_noteNo
readiness_gradeNo
binding_deadlineNo
primary_recommendationNo
secondary_recommendationsNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, but the description adds substantial context beyond them: compute locality (server-side Workers vs browser delegation), a data-retention guarantee (transient, not stored/logged/retained), the AP2 artifact with execution_hash for chain provenance, and the downstream consumers. It does not disclose latency, limits, or error behavior, but the transparency gain over annotations is real.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with the node identity, which is good, but it is dense and partly redundant — the compute-mode behavior is explained both in the description and verbatim in the schema — and it embeds volatile details (a URL and a long FV-status hash) that dilute the actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the description covers the main things an agent needs: execution modes, chaining via parent_hashes, data handling, and downstream artifact feeds. The missing piece is a statement of what the diagnostic computes and any differentiation from sibling diagnostics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters, which sets the baseline at 3. The description largely restates the compute enum semantics already present in the schema and defers policy_parameters field meanings to "the tool's manifest," adding little meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and node label make clear this runs a T+1 settlement readiness diagnostic, and it notes it is a deterministic compute node exporting an AP2 artifact. However the description spends most of its text on compute mechanics and never states what the diagnostic actually evaluates, and it does nothing to distinguish it from the many sibling run_*_readiness_diagnostic tools. Purpose is inferable but not sharpened.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is an input constraint ("Use synthetic or anonymised inputs only"), which is a safety rule rather than a selection rule. There is no statement of when to choose this diagnostic over the alternatives (run_dora_readiness_diagnostic, run_vida_readiness_diagnostic, etc.), so usage must be inferred entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_tempo_fit_diagnosticTempo Fit DiagnosticB
Read-onlyIdempotent
Inspect

Tempo Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-35-tempo-payments-business-case, art-36-tempo-mpp-agent-mandate, art-37-tempo-stablecoin-issuance, art-40-tempo-agentic-checkout. Open at: https://ainumbers.co/chaingraph/art-34-tempo-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/no-destructive), the description discloses compute-mode routing (server kernel vs browser delegation URL, gpu:true always delegates), transient non-retention of inputs, and the AP2 artifact with execution_hash. That is real behavioral context; it stops short of explaining failure modes or the provenance receipt's meaning.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode and privacy sentences earn their place and are front-loaded, but the trailing FV-status blob (long hex hash plus URL) is verbose and consumes significant space for a single verification pointer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter compute node with full schema coverage and no output schema, the description supplies execution environment, privacy, and export/downstream linkage. What remains missing — what the diagnostic actually evaluates and how to interpret results — is non-trivial but outside the narrow call-correctly requirement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter is already documented in the schema. The description restates the compute-mode semantics rather than adding new meaning (e.g., parent_hashes would just say 'chaining'), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names the tool as an OpenChainGraph compute node producing a 'Tempo Fit Diagnostic' and lists downstream artifacts, but never explains what 'fit' is being measured or what the decision function evaluates. The agent knows it is a computation, not what it computes, so purpose is only implicitly clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to the many sibling diagnostics (run_agent_economy_fit, run_arc_fit_diagnostic, run_tempo_...). The only constraint given is 'Use synthetic or anonymised inputs only,' which is a data-handling rule, not tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_tokenized_settlement_fitWholesale Tokenized Settlement Fit DiagnosticA
Read-onlyIdempotent
Inspect

Wholesale Tokenized Settlement Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-57-deposit-token-compliance-validator, art-58-cross-network-settlement-validator, art-59-settlement-asset-finality-classifier, 505-tokenized-collateral-eligibility-checker, 509-canton-party-allowlist-validator, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-56-tokenized-settlement-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
dim_scoresNo
finality_flagNo
overall_gradeNo
overall_scoreNo
remediation_checklistNo
primary_recommendationNo
secondary_recommendationsNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses genuinely useful behavior: compute-mode resolution (server on Workers for gpu:false, browser delegation otherwise, gpu:true always delegates), transient non-retention of inputs, and an exported AP2 artifact carrying execution_hash for provenance. That is well above the annotation baseline, though it omits failure modes and any latency/rate context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavior leads the text, which is good, but the description is bloated with boilerplate: a URL, a full FV-status JSON path, a self-verifying receipt sentence, and six downstream tool IDs. Much of the tail is metadata that does not help an agent call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description still covers input chaining (parent_hashes/parent_tool_ids), compute binding, data-handling, and provenance export. Fairly complete for a compute node, only lacking guidance on the policy_parameters payload an agent must supply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description largely restates the compute-mode semantics and adds nothing about the opaque policy_parameters object beyond the schema's own note to consult the manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific artifact ('Wholesale Tokenized Settlement Fit Diagnostic') and identifies itself as an OpenChainGraph compute node, which lets an agent place it in the diagnostics family. However it never concretely states what 'fit' adjudication the decision function performs, so the resource is named but the actual computation stays abstract.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implicitly situates the tool by listing the downstream validators that consume its output (art-57, art-58, 505, etc.), which hints at workflow position. But there is no explicit when-to-use vs a sibling alternative, no prerequisites, and no exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_treasury_clearing_fitTreasury Clearing Fit DiagnosticB
Read-onlyIdempotent
Inspect

Treasury Clearing Fit Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Regulatory deadline: 2026-12-31 (SEC UST clearing: cash Dec 31 2026, repo Jun 30 2027. D0 root of all treasury-clearing chains.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-49-clearing-access-model-selector, art-50-ficc-margin-netting-estimator. Open at: https://ainumbers.co/chaingraph/art-48-treasury-clearing-fit-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
dim_scoresNo
overall_gradeNo
overall_scoreNo
compliance_deadlineNo
remediation_checklistNo
primary_recommendationNo
secondary_recommendationsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds meaningful behavior: the compute-mode semantics (auto/server/browser, gpu:true always delegates), transient processing with no storage/logging/retention, the synthetic-inputs-only constraint, and AP2 artifact export with execution_hash. These are real traits beyond the annotation set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is bloated: an FV-status receipt hash, a raw URL, and regulatory deadline minutiae are interleaved with behavioral facts. Several sentences do not help an agent select or invoke the tool, diluting the signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, return values need not be explained, and the description covers compute modes, chaining, privacy constraints, and provenance export. It is reasonably complete for invocation, though it never explains what the diagnostic computes, leaving a domain gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema, which sets the baseline at 3. The description restates compute-mode behavior (largely duplicating the schema) and only implies parent_hashes chaining via 'execution_hash values ... to chain from', so it adds little beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description frames a 'Treasury Clearing Fit Diagnostic' OpenChainGraph compute node and gives regulatory context (SEC UST clearing deadlines), but never states what the diagnostic actually evaluates or what a 'fit' result means. It is distinguishable as a treasury-clearing tool but offers no differentiation from sibling diagnostics like run_tokenized_settlement_fit or run_arc_fit_diagnostic beyond the domain name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no prerequisites, and no alternatives named. The only routing hint is 'Output feeds: art-49..., art-50...', which describes downstream consumption rather than when an agent should choose this tool over another fit diagnostic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_umr_aana_readinessUMR / AANA Readiness DiagnosticA
Read-onlyIdempotent
Inspect

UMR / AANA Readiness Diagnostic: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-407-umr-aana-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
in_scope_aanaNo
overall_gradeNo
aana_group_eurNo
counterpartiesNo
disambiguationNo
im_threshold_eurNo
constants_versionNo
counterparty_countNo
thresholds_vintageNo
remediation_checklistNo
aana_in_scope_threshold_eurNo
counterparties_over_im_thresholdNo

TDQS

A3.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/openWorld=false/destructive=false), the description discloses substantial behavior: deterministic execution, server-vs-browser delegation semantics, transient processing with no storage/logging/retention, and the export of an AP2 artifact carrying execution_hash for chain provenance. The annotation bar is already low, and this adds data-handling policy, delegation behavior, and provenance mechanics that the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The block is dense but front-loads the tool identity and then the most consequential operational facts (compute mode, data handling, provenance export). Some waste exists — 'OpenChainGraph compute node' is repeated in consecutive sentences and the FV-status line embeds a full 64-char hash — but nearly every sentence carries functional information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an execution standpoint it is fairly complete: data handling, compute behavior and provenance are covered, and an output schema exists so return values need not be explained. The gap is domain semantics — an agent still cannot tell what UMR/AANA readiness means or what belongs in policy_parameters, which is exactly the information needed to select this tool over its readiness-diagnostic siblings. The external spec URL and manifest reference are pointer-based rather than self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description echoes the compute-mode semantics and implies the chaining role of parent hashes ('chain provenance') but adds no syntax or field-level meaning beyond the schema, and defers policy_parameters field names to an external manifest. Baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the domain ('UMR / AANA Readiness Diagnostic') and frames it as a deterministic OpenChainGraph compute node, but it never states what the diagnostic actually computes or evaluates, and the first sentence largely restates the title. Siblings such as run_agentic_readiness_diagnostic, run_dora_readiness_diagnostic and run_mica_casp_fit share the same 'readiness diagnostic' framing, and nothing here distinguishes why an agent should pick this one. The purpose is identifiable but vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational guidance on the compute modes (auto/server/browser, gpu:true always delegates) and a real constraint ('Use synthetic or anonymised inputs only'), which is more than nothing. However, it offers no when-to-use guidance relative to the many sibling readiness diagnostics, and no prerequisites or exclusion conditions. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_vida_readiness_diagnosticViDA Compliance Readiness DiagnosticB
Read-onlyIdempotent
Inspect

ViDA Compliance Readiness Diagnostic: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-163-vida-oss-registration-router. Open at: https://ainumbers.co/chaingraph/art-164-vida-compliance-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses genuinely useful behavior: server-vs-browser compute selection, browser delegation URL returns for gpu:true nodes, transient processing with no retention, and export of an AP2 artifact with execution_hash. This is substantive disclosure that annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode explanation is front-loaded and relevant, but it re-explains semantics already in the schema, and the trailing FV-status URL plus 64-character hash is extraneous to invoking the tool. Reasonable overall, but not every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should describe the diagnostic result, but it only states that an AP2 artifact is exported. The opaque policy_parameters object is deferred to 'the tool's manifest' rather than clarified, leaving the agent without a clear picture of inputs or returns for a readiness-diagnostic tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all four parameters, so the schema already documents compute, parent_hashes, and parent_tool_ids. The description's compute explanation duplicates the schema text rather than adding syntax or constraints, giving it no edge; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence restates the title verbatim and tags the node as (compliance_mandate), but never explains what a ViDA readiness diagnostic actually evaluates or produces. The name is specific enough to infer intent, yet the description adds no explanatory clarity and does not distinguish it from siblings like assess_vida_drr_reporting_obligation or route_vida_oss_registration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not guidance. The note that it 'consumes upstream artifacts from art-163-vida-oss-registration-router' implies a sequencing dependency, but no alternatives or selection conditions are named. The 'use synthetic or anonymised inputs only' line is a data-handling constraint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_vop_readiness_diagnosticVoP Readiness DiagnosticC
Read-onlyIdempotent
Inspect

VoP Readiness Diagnostic: OpenChainGraph compute node (vop_readiness_attestation). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-548-vop-readiness-diagnostic.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
consistentNo
scope_noteNo
classificationNo
not_legal_adviceNo
regulatory_basisNo
match_score_providedNo
psp_declared_maps_toNo
psp_vop_response_codeNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world semantics, so the bar is lower. The description still adds real behavior: inputs are processed transiently and not stored/logged/retained, browser delegation returns a URL, gpu:true nodes always delegate, and the export carries an execution_hash for chain provenance. It omits error/rate-limit behavior, but the added disclosure is substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with boilerplate (kernel registration, Workers, gpu:false, a raw documentation URL and a 64-character hash) and opens by restating the title. The genuinely useful agent-facing facts (transient inputs, compute modes, artifact export) are buried among provenance minutiae rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and all four parameters are documented. The description covers compute modes, transient handling, and artifact export, but leaves the actual diagnostic semantics and the policy_parameters input contents unspecified, deferring to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, making 3 the baseline. The description reinforces compute-mode semantics but adds nothing about the policy_parameters field, explicitly deferring to 'the tool's manifest for field names'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a deterministic 'VoP Readiness Diagnostic' compute node that exports an AP2 artifact, which is a specific verb+resource. However, it never explains what 'VoP readiness' actually evaluates or what the diagnostic decides, and the infrastructure boilerplate (kernel registration, Cloudflare Workers, FV-status hash) crowds out the purpose. Against a large family of near-identical 'run_*_readiness_diagnostic' siblings it offers no differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the compute modes ('auto'/'server'/'browser') and that inputs must be synthetic/anonymised, which is useful operating context. But it gives no guidance on when to choose this diagnostic over siblings such as simulate_vop_matching, build_vop_session_receipt, or the other readiness diagnostics, and states no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_tool_poisoningMCP Tool-Poisoning & Prompt-Injection Manifest ScannerA
Read-onlyIdempotent
Inspect

Scan an MCP tool description/manifest for tool-poisoning and prompt-injection smells; returns a risk score and flagged patterns. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
riskNo
findingsNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description adds valuable behavioral context: the tool runs client-side, zero PII, zero network, and renders an interactive widget. This goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long. The first sentence states the core purpose and return value. The second sentence adds important context about widget rendering, client-side execution, and data privacy. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (security scanning, widget rendering), the presence of an output schema, and full schema coverage, the description provides key behavioral details (client-side, zero PII, zero network) but does not explain the risk score scale or specific flagged patterns. However, these are likely covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage for the only parameter 'inputs'. The description adds meaning by explaining that inputs are 'a map of tool input element IDs to values' and that they are 'applied via AIN Bridge prefill'. This clarifies the parameter's role beyond the schema's type definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Scan' and identifies the resource as 'MCP tool description/manifest'. It clearly states the tool detects 'tool-poisoning and prompt-injection smells' and returns a risk score and flagged patterns. This distinguishes it from siblings like 'lint_mcp_tool_definition' (structural linting) and 'find_tool' (search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating the tool scans for security smells, but it does not provide explicit guidance on when to use it versus alternative tools, nor does it mention scenarios where the tool should not be used. The usage context is implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scope_mica_token_and_serviceMiCA Token & Service ScoperB
Read-onlyIdempotent
Inspect

MiCA Token & Service Scoper: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-98-mica-casp-fit-diagnostic. Output feeds: cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-105-mica-token-service-scoper.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
mica_noteNo
rationaleNo
route_targetNo
classificationNo
reference_versionNo
delegated_to_existingNo
wave20_chains_applicableNo
existing_chains_delegatedNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint already in annotations, the description still adds real behavioral context: default server-side vs 'browser' compute delegation, gpu:true always delegating, transient processing with no store/log/retention, a synthetic-inputs-only requirement, and the AP2 execution_hash export. These are genuine traits beyond the annotations, though the retention and compute-mode details are largely restated from the compute parameter schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense run-on covering compute binding, data handling, artifact chaining, an external URL, and an FV-status receipt hash. The opening sentence restates name/title/mandate, and the trailing FV-status paragraph reads as boilerplate rather than actionable guidance, so the useful content is buried rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and the description does cover compute modes, chaining, and data handling. The gap is the semantic core: what the scoping decision produces and which inputs to policy_parameters drive it, which is left to an external manifest the agent cannot see.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes, and parent_tool_ids parameters are already fully documented in the schema. The description adds little parameter-level meaning and defers the important policy_parameters fields to 'the tool's manifest', which the agent may not have. Baseline 3 is appropriate when the schema carries the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title indicate a MiCA token-and-service scoping tool, and the description identifies it as an 'agent_guardrail_mandate' compute node consuming art-98-mica-casp-fit-diagnostic. However, it never states in plain terms what the tool determines (e.g., which MiCA token/service classification or scope it returns), so the actual decision function is left to inference from the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives chaining context ('Consumes upstream artifacts from art-98-mica-casp-fit-diagnostic', 'Output feeds cry-05-agent-action-audit-trail-aggregator'), which implies when the tool belongs in a workflow. It does not, however, distinguish this tool from siblings like run_mica_casp_fit, assess_mica_casp_readiness, or calculate_mica_own_funds, nor state any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_agent_insurability_evidenceAgent Insurability Evidence ScorerC
Read-onlyIdempotent
Inspect

Agent Insurability Evidence Scorer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-307-claim-dispute-bundle-builder. Open at: https://ainumbers.co/chaingraph/art-306-agent-insurability-evidence-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dimsNo
compositeNo
rubric_versionNo
underwriter_profileNo
insufficient_evidenceNo
reputation_self_assertedNo
incident_history_providedNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the bar is lower. The description still adds meaningful traits beyond them: deterministic execution, transient processing with no storage/logging/retention, the requirement to use synthetic or anonymised inputs, and the export of an AP2 artifact carrying execution_hash for chain provenance. That is substantive operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the tool identity but contains redundancy ('OpenChainGraph compute node' repeated as 'Deterministic OpenChainGraph compute node') and a trailing FV-status URL with a long hash that is annotation/metadata noise rather than task-relevant guidance. It is not bloated to the point of harm, but several sentences do not earn their place for an agent deciding how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-format explanation is not owed. The description adequately covers execution mode, privacy handling, and provenance, but for a tool whose core working input is an opaque policy_parameters object it defers entirely to an external manifest ('See the tool's manifest for field names'), leaving the agent unable to construct a meaningful call from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes compute-mode behavior and mentions chaining, but adds little that the schema does not already say. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the tool name and title, then pivots to infrastructure metadata (compute nodes, AP2 artifacts, FV-status receipt). It never states what the 'insurability evidence scoring' decision function actually computes, what evidence it consumes, or what verdict it produces. It identifies the domain (compliance_mandate) and a downstream consumer, but an agent still cannot say in concrete terms what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over any of the many sibling scorers/compute nodes. The only usage-like instruction is about compute modes ('auto' vs 'browser') and the directive to use synthetic inputs, both of which are execution mechanics rather than selection criteria. No prerequisites or exclusions are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_aml_typologiesAMLA Transaction-Typology Risk ScorerC
Read-onlyIdempotent
Inspect

AMLA Transaction-Typology Risk Scorer: OpenChainGraph compute node (risk_control). Regulatory deadline: 2027-07-01 (EU AMLR full application July 2027; AMLA full operations 2028). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: cry-01-zk-compliance-proof-generator, art-11-vop-batch-match-rate-analyser, ptg-01-ap2-prompt-template-generator, mms-03-app-fraud-graph, ml-01-isolation-forest. Open at: https://ainumbers.co/chaingraph/art-10-amla-transaction-typology-risk-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
max_scoreNo
overall_riskNo
average_scoreNo
high_risk_countNo
compliance_flagsNo
medium_risk_countNo
top_risk_accountsNo
transaction_countNo
typology_hit_countsNo
travel_rule_violationsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds genuinely useful behaviour: deterministic server-side vs browser execution via the compute mode, transient non-stored input handling, and export of an AP2 artifact carrying execution_hash for chain provenance. The browser-delegation return path is disclosed. It stops short of describing output shape, but that is covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with regulatory dates, a full compute-node tutorial, downstream tool IDs, a URL, and an unreadable FV-status hash, none of which help an agent decide how to invoke the tool. The core purpose is buried and the text is not front-loaded around the decision-relevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a chained compute node with an output schema present, the description does cover compute binding, chaining inputs, data handling and provenance export. However it omits any account of what the scoring evaluates and when it applies relative to the many sibling AML and risk-scoring tools, which is the main context an agent needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description largely repeats the compute-mode semantics verbatim rather than adding new meaning, and it says nothing about policy_parameters content beyond deferring to the manifest. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name restates the purpose ('AMLA Transaction-Typology Risk Scorer'), and the body never expands on what a typology score actually is, which typologies are covered, or what risk output looks like. It identifies the tool as a 'risk_control' compute node and lists downstream consumers, but the actual scoring function is left implicit. Sibling AML tools (plan_aml_disposition_sample, reconcile_aml_lookback_completeness) are not distinguished from it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage directive is 'Use synthetic or anonymised inputs only', which is a data-handling constraint rather than when-to-use guidance. There is no statement of when this scorer should be chosen over other AML tools, nor any precondition for calling it. The compute-mode discussion describes how execution happens, not when to invoke the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_cash_forecast_accuracyCash Forecast Accuracy ScoringC
Read-onlyIdempotent
Inspect

Cash Forecast Accuracy Scoring: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-258-parse-camt053-reconciliation, art-261-test-hedge-effectiveness. Open at: https://ainumbers.co/chaingraph/art-263-score-cash-forecast-accuracy.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
by_horizonNo
table_sourceNo
table_versionNo
not_legal_adviceNo
overall_bias_pctNo
overall_mape_pctNo
regulatory_basisNo
total_observationsNo
afp_benchmark_tiersNo
skipped_zero_actualNo
timing_bias_detectedNo
overall_accuracy_tierNo
persistent_sign_periodsNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly/idempotent/non-destructive behavior, and the description adds useful details beyond that: deterministic execution, transient input processing with no storage/logging/retention, synthetic-input requirement, AP2 artifact export with execution_hash, and upstream chain dependencies. It still omits error/rate-limit behavior, but it meaningfully enriches the safety and provenance picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and heavily boilerplate-laden, including a URL, FV-status hash, and offline verification note. The useful constraints are buried among infrastructure metadata, so many sentences do not earn their place for an agent selecting or invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers compute behavior and upstream dependencies. However, for a scoring tool with policy_parameters, it does not describe what is being scored or how to supply the decision-function inputs beyond deferring to a manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description reinforces the compute-mode semantics and names specific upstream artifacts, but adds little new meaning for how to set each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool's name/title as 'Cash Forecast Accuracy Scoring' and calls it an 'OpenChainGraph compute node,' but never explains what the scoring actually computes or how it differs from the sibling compute_forecast_accuracy_score. It is essentially a tautological restatement plus infrastructure metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as compute_forecast_accuracy_score. The mention of compute modes and upstream artifacts is operational context, not usage selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_clause_coverageClause Coverage ScorerC
Read-onlyIdempotent
Inspect

Clause Coverage Scorer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-410-clause-coverage-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description genuinely adds: transient non-logged processing, server-vs-browser delegation rules including GPU-node behavior, and an exported AP2 artifact carrying execution_hash for chain provenance. The FV-status note usefully clarifies the receipt verifies offline as a snapshot rather than a live subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It front-loads the name but is padded with redundant boilerplate ("OpenChainGraph compute node" and "Deterministic OpenChainGraph compute node" say the same thing) and a long URL/hash receipt. The compute-mode mechanics dominate the text while the actual purpose gets no sentence at all.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and an opaque nested policy_parameters object whose fields live in an off-site manifest, the description should at least hint at what the score output contains, and it does not. It is complete on execution/compute semantics but incomplete on the decision function an agent must actually feed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids in detail; the description's compute-mode explanation largely duplicates that. The one genuine gap is policy_parameters, where the description defers to an external manifest for field names, adding no extra semantic clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the name/title ("Clause Coverage Scorer") and then pivots entirely to compute infrastructure, never explaining what a clause-coverage score is, what clauses are scored, or in what domain. An agent learns the tool exists but not what it actually decides, and no sibling differentiation is offered.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is "Use synthetic or anonymised inputs only," which is an input-safety constraint rather than a when-to-use/alternative routing rule. The description never states the conditions under which an agent should pick this over the many sibling scoring/assess tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_credit_default_riskCredit Default Risk ScorerB
Read-onlyIdempotent
Inspect

Credit Default Risk Scorer: OpenChainGraph compute node (credit_assessment). Regulatory deadline: 2027-12-02 (EU AI Act Annex III Part 5(b) credit-scoring high-risk obligations — 2 December 2027, per the Digital Omnibus amendments (June 2026); EBA GL/2017/16 IRB model performance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-05-eu-ai-act-credit-scoring-conformity. Output feeds: sim-03-basel-rwa-scenario-modeler, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/ml-02-credit-default-risk-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
auc_rocNo
verdictNo
sa_rwa_gbpNo
irb_rwa_gbpNo
ks_statisticNo
portfolio_pdNo
high_pd_loansNo
total_ead_gbpNo
n_loans_scoredNo
sa_capital_gbpNo
irb_capital_gbpNo
compliance_flagsNo
gini_coefficientNo
irb_vs_sa_savingNo
expected_loss_gbpNo
n_defaults_observedNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/deterministic-safe behavior, so the bar is lower, yet the description still adds real context: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs are required, and it exports an AP2 artifact with execution_hash for chain provenance. The compute-mode behavior is also described, though it largely restates the schema. The privacy/retention and provenance disclosures are the valuable additions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a dense, single-paragraph block that front-loads name and purpose but then mixes regulatory deadlines, compute binding, privacy, artifact chaining, a URL, and a long opaque FV-status hash. Most content earns its place, but the sprawling run-on structure and the cryptic receipt string hurt readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and annotations cover the safety profile. The description supplies provenance, chaining, compute-mode, and privacy details that complete the picture. The main remaining gap is that the core decision-function inputs (policy_parameters) are left to a manifest, which is a meaningful omission for a scoring tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds a little (the chaining role of parent_hashes via the upstream artifact reference), but it never clarifies what policy_parameters the credit model expects, deferring to 'the tool's manifest'. It neither compensates nor adds much beyond a well-documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title identify a credit default risk scorer and the description situates it as an OpenChainGraph 'compute node (credit_assessment)', so the resource is clear. However, the body spends nearly all its words on infrastructure (compute modes, provenance, FV receipts) rather than what the scoring actually computes or from what inputs, and it never distinguishes itself from adjacent siblings like score_credit_model_quantized. The purpose is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance relative to alternatives. The 'Consumes upstream artifacts from' and 'Output feeds' lines hint at pipeline placement, but that is pipeline topology, not agent-facing selection criteria. Nothing tells an agent when this scorer is the right call versus other credit/risk tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_credit_model_quantizedQuantized Credit Model ScorerC
Read-onlyIdempotent
Inspect

Quantized Credit Model Scorer: OpenChainGraph compute node (credit_assessment). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-348-score-credit-model-quantized.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bitsNo
decisionNo
n_featuresNo
quant_methodNo
threshold_fixpNo
accumulator_fixpNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, and the description adds genuinely useful behavior beyond them: transient processing with no storage or logging, server-vs-browser delegation semantics, and export of an AP2 artifact carrying execution_hash for chain provenance. That is substantive context an agent could not infer from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The sentence about the FV-status snapshot and offline receipt verification is infrastructure legalese that does not help an agent select or invoke the tool, and the deployment URL plus hash string bloat the definition. The one useful fact (what the node does) is absent while low-value metadata is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but for a 4-parameter tool with a nested, untyped policy_parameters object the description never explains what inputs the credit decision function expects or what the score represents. Given the model-scoring domain and near-identical sibling score_credit_default_risk, the definition is not complete enough to call confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; the description's compute-mode prose largely duplicates the enum description. It adds nothing about policy_parameters field names, deferring to 'the tool's manifest', which leaves the decision inputs opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title and adds only framework chrome ('OpenChainGraph compute node (credit_assessment)'); it never says what scoring a quantized credit model actually computes or how the output differs from a plain credit default risk score. With siblings like score_credit_default_risk and score_credit_model_quantized present, the lack of differentiation is a real gap. The name carries nearly all the meaning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives operational constraints ('Use synthetic or anonymised inputs only', compute modes), but nothing about when to pick this tool over the non-quantized credit scorer or other credit_assessment siblings. It states a data-handling rule rather than a selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_eudr_country_riskEUDR Country Benchmark Risk ScorerC
Read-onlyIdempotent
Inspect

EUDR Country Benchmark Risk Scorer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-169-eudr-supply-chain-traceability-linker. Open at: https://ainumbers.co/chaingraph/art-168-eudr-country-benchmark-risk-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
country_codeNo
benchmark_riskNo
due_diligence_levelNo
inspection_rate_pctNo
commission_delegated_act_noteNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses real behavioral traits: server-side vs browser compute binding, transient non-stored processing, an AP2 artifact export with execution_hash for provenance, and the downstream consumer (art-169 linker). These are substantive operational details an agent would not get from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with chain metadata, a documentation URL, and a long FV-status hash that do not help an agent select or invoke the tool. The genuinely useful content (compute modes, privacy) is buried among low-value provenance boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the compute-binding behavior is covered. However, for a domain scoring node the description never characterizes the scoring domain or the shape of policy_parameters, leaving the core semantic of the tool under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids. The description adds no parameter-level detail, and the key decision input policy_parameters remains opaque (schema defers to 'the tool's manifest'), so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line ('EUDR Country Benchmark Risk Scorer', compliance_mandate node) identify the resource, but the description never states what it actually computes or returns for EUDR country risk. It spends far more text on compute plumbing than on the scoring purpose, and it does not distinguish itself from siblings like run_eudr_readiness_fit or classify_eudr_commodity_scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this scorer versus the many other EUDR tools in the catalog. The only directive present is 'Use synthetic or anonymised inputs only', which is a data-handling constraint, not usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_fuzzy_match_calibrationFuzzy-Match Calibration ScorerC
Read-onlyIdempotent
Inspect

Fuzzy-Match Calibration Scorer: OpenChainGraph compute node (model_governance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-90-sanctions-screening-fit-diagnostic. Output feeds: art-97-sanctions-screening-quality-scorer, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-93-fuzzy-match-calibration-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds real depth beyond them: determinism, transient processing with no storage/logging/retention, a synthetic-inputs-only constraint, and the fact that it exports an AP2 artifact with execution_hash for provenance. That is meaningful operational context for a read tool that the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text opens by redundantly restating the name and title, then packs dense infrastructure boilerplate, a documentation URL, and a long FV-status hash into the same block. The sentence about the /fv-status/ snapshot is irrelevant to tool selection and dilutes the signal an agent needs, so the definition is long without being front-loaded on purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four parameters including a nested policy_parameters object whose field names are deferred to an external manifest, and no output schema, the description should explain the decision-function inputs and the return shape. It instead describes only infrastructure and provenance, leaving the core computational contract unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode behavior that the schema already documents in more detail, and adds nothing about policy_parameters or parent_hashes beyond what the schema says. No uplift over structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what the calibration scoring actually computes. It labels the tool an 'OpenChainGraph compute node (model_governance)' and gives chain plumbing, but the substantive purpose is only implied by the name/title. Siblings like score_sanctions_screening_quality or score_payee_name_match are not distinguished, so an agent cannot tell what this scorer uniquely does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance relative to alternatives. The only routing signal is indirect: it 'consumes upstream artifacts from art-90-sanctions-screening-fit-diagnostic' and feeds art-97/cry-05, which implies a chain position but not a selection condition an agent can act on.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_mcp_readinessMCP Developer Readiness ScorecardA
Read-onlyIdempotent
Inspect

Compute a composite MCP server ship-readiness score across tool definitions, server.json, OAuth, transport, tool poisoning, and spec compliance. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
overallNo
sectionsNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant behavioral context beyond annotations: mentions client-side execution, zero network, AIN Bridge input application, and rendering as an interactive widget. Annotations already declare readOnlyHint=true and destructiveHint=false, but the description enriches understanding of the tool's execution model.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences without redundancy: first states the core function, second adds key execution and privacy details. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the tool's scope, execution model, and privacy. Output format is omitted but an output schema exists, so that is acceptable. The description could mention the widget's interactive nature more, but overall complete given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already describes the 'inputs' parameter as a map from element IDs to values. The description echoes this by saying 'inputs are applied via the AIN Bridge', adding marginal clarification. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Compute' and the specific resource 'composite MCP server ship-readiness score'. Specifies the evaluation dimensions (tool definitions, server.json, OAuth, etc.), making it distinct from other score tools like score_aml_typologies or score_credit_default_risk. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context (client-side, zero PII, zero network) which implies safe usage for sensitive data, but does not explicitly compare to alternatives like run_mcp_deployability_diagnostic or attest_mcp_server. Lacks direct when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_mcp_server_readinessMCP Developer Readiness ScorecardB
Read-onlyIdempotent
Inspect

MCP Developer Readiness Scorecard: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-17-ap2-mcp-policy-validator, art-23-visa-trusted-agent-protocol-inspector, art-24-mastercard-agentic-token-builder, art-25-a2a-agent-card-validator, art-26-x402-payload-decoder-flow-simulator, art-27-agentic-readiness-diagnostic, art-28-mcp-server-deployability-diagnostic. Open at: https://ainumbers.co/chaingraph/art-18-mcp-developer-readiness-scorecard.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
noteNo
overallNo
verdictNo
sectionsNo
gaps_countNo
answers_usedNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already declare read-only/idempotent/non-destructive), the description discloses substantial behavior: server vs browser compute delegation, that gpu:true nodes always delegate, transient processing with no logging/retention, and that exports emit an AP2 artifact carrying execution_hash for provenance. That is genuinely valuable context the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavioral facts are front-loaded, but the description is bloated with a long consumed-artifact list, a raw URL, and a full 64-char FV-status hash that could not plausibly help an agent decide to call the tool. Several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it covers compute binding, provenance inputs, and retention policy well. The one gap is that it never characterizes what the readiness score evaluates, which an agent selecting among similar MCP-scoring tools would need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, and parent_tool_ids. The description restates the compute-mode semantics but for policy_parameters it only says 'See the tool's manifest for field names', punting on the nested object rather than adding semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state 'MCP Developer Readiness Scorecard' and the description adds mechanics (compute node, artifact export), but it never says what the score actually measures or returns — the 'readiness' criteria are left implicit. It also does not distinguish itself from the close sibling score_mcp_readiness. Purpose is inferable but not crisply defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a real usage constraint ('Use synthetic or anonymised inputs only') and compute-mode selection guidance, which is implied usage guidance. But there is no explicit when-to-use vs alternatives routing, and near-identical siblings (score_mcp_readiness, run_mcp_deployability_diagnostic, lint_mcp_server_conformance) go unmentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_mt_mx_translation_fidelityMT103 to MX Translation Fidelity ScorerC
Read-onlyIdempotent
Inspect

MT103 to MX Translation Fidelity Scorer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-244-gpi-tracker-lifecycle-simulator. Open at: https://ainumbers.co/chaingraph/art-245-mt-mx-translation-fidelity-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
pii_noteNo
compliantNo
error_countNo
table_sourceNo
fidelity_tierNo
table_versionNo
fidelity_scoreNo
mapping_resultsNo
regulatory_basisNo
truncation_risksNo
charge_bearer_mapNo
cbpr_plus_deadlineNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds real context: inputs are processed transiently and not stored or logged, compute:'browser' returns a delegation URL instead of a result, gpu:true nodes always delegate, and an AP2 artifact with execution_hash is exported for chain provenance. That is meaningful disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is buried under boilerplate: Cloudflare Workers execution details, an artifact URL, an upstream-artifact reference, and a long FV-status hash with a note about offline receipts. Much of this is provenance metadata rather than information that helps an agent call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and no required parameters, so return values needn't be explained, but the description never says what inputs the decision function consumes — policy_parameters is explicitly punted to an external manifest. For a scoring tool, an agent has no way to know what to supply or what a fidelity score means.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter is documented in the schema, so the baseline is 3. The description's compute-mode narrative duplicates the enum documentation rather than adding new meaning, and it defers the actual decision inputs to 'the tool's manifest', which the agent cannot see.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the tool title ('MT103 to MX Translation Fidelity Scorer: OpenChainGraph compute node') and adds no detail on what fidelity scoring actually examines — field mapping coverage, amount/currency precision, or ISO 20022 element conformance. An agent learns the tool's identity but nothing about its computational purpose beyond what the name already conveys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to pick this over siblings such as map_mt9xx_to_camt, check_mt101_coexistence_readiness, or validate_mt700_lc_fields. The only usage-adjacent statement is the constraint 'Use synthetic or anonymised inputs only', which is a restriction, not routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_nis2_incident_significanceNIS2 Incident Significance Scorer (Art. 23 Reporting Threshold)C
Read-onlyIdempotent
Inspect

NIS2 Incident Significance Scorer (Art. 23 Reporting Threshold): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-145-nis2-ict-supply-chain-diligence-scorer. Open at: https://ainumbers.co/chaingraph/art-144-nis2-incident-significance-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
recipientsNo
reporting_requiredNo
triggering_factorsNo
significance_verdictNo
estimated_affected_usersNo
service_disruption_hoursNo
final_report_deadline_daysNo
notification_deadline_hoursNo
early_warning_deadline_hoursNo
estimated_financial_loss_eurNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the description earns credit for going beyond them: it states the node is deterministic, that inputs are processed transiently and not stored/logged/retained, that server vs browser compute delegation changes the return shape, and that an AP2 artifact with execution_hash is exported. The privacy and provenance disclosures are genuinely useful. It stops short of describing what the returned significance verdict/fields look like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded but bloated and self-referential: the title is echoed verbatim, 'Deterministic OpenChainGraph compute node' appears twice, and the closing FV-status sentence embeds a long hash and an offline-receipt caveat that does nothing to help an agent select or call the tool. Roughly half the text is infrastructure boilerplate rather than task-relevant guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, and annotations cover the safety profile, so the mechanical invocation contract is adequately covered. The gap is functional: the policy_parameters object, which carries the actual incident facts to be scored, is deferred to an external manifest the agent cannot see, making the definition incomplete for correct invocation of a scoring tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes and parent_tool_ids parameters are already well documented in the schema. The description's compute-mode explanation largely restates the schema's own enum description, adding no new semantics. Critically, it punts on the actual decision input: policy_parameters says only 'See the tool's manifest for field names', leaving the substantive scoring inputs undocumented here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title establish the verb+resource (score an incident's NIS2 Art. 23 significance), but the description itself mostly repeats that framing and then pivots to infrastructure boilerplate. It never explains what the scoring considers or what output it produces, and it does not distinguish this from close siblings such as score_nis2_supply_chain_diligence, calculate_nis2_penalty_exposure, or classify_nis2_entity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. The only routing-adjacent content is 'Output feeds: art-145-nis2-ict-supply-chain-diligence-scorer', which describes a downstream consumption edge, not a condition for selecting this tool over its many NIS2 siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_nis2_supply_chain_diligenceNIS2 ICT Supply-Chain Diligence Scorer (Art. 21(2)(d) / ENISA)B
Read-onlyIdempotent
Inspect

NIS2 ICT Supply-Chain Diligence Scorer (Art. 21(2)(d) / ENISA): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-144-nis2-incident-significance-scorer. Output feeds: art-146-nis2-governance-readiness-checker. Open at: https://ainumbers.co/chaingraph/art-145-nis2-ict-supply-chain-diligence-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
risk_tierNo
risk_scoreNo
active_risk_flagsNo
remediation_checklistNo
enisa_control_coverage_pctNo
vendor_incident_history_12moNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely useful context beyond that: transient processing with no storage/logging/retention, the synthetic-inputs-only constraint, browser delegation behavior, and an AP2 artifact with execution_hash for provenance. That is real behavioral disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is bloated: it restates 'OpenChainGraph compute node' twice, duplicates the compute-mode explanation already in the schema, and ends with a long FV-status URL/hash receipt that is noise for an invocation decision. The relevant purpose statement is buried under infrastructure boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers compute modes, provenance export, and chain position. But for a nested-object tool with 4 params it leaves policy_parameters contents entirely to an external manifest, and never clarifies what the score output actually represents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description reinforces the compute-mode semantics but adds nothing new for the chaining parameters, and explicitly defers policy_parameters field names to 'the tool's manifest'. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title establish a clear verb+resource (score NIS2 ICT supply-chain diligence under Art. 21(2)(d)/ENISA), but the body spends most of its words on compute-node infrastructure mechanics rather than describing what the scoring actually evaluates or returns. It hints at workflow position via upstream/downstream artifacts, but the core purpose is left to the title. Adequate but with a clear gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on the compute parameter (auto vs server vs browser) and positions the tool in a chain (consumes art-144, feeds art-146), which implies usage. However, it never says when to choose this tool over NIS2 siblings such as check_nis2_art21_measures, check_nis2_governance_readiness, or score_nis2_incident_significance, and offers no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_partner_stablecoin_readinessArc Partner Stablecoin Onboarding ConformanceB
Read-onlyIdempotent
Inspect

Arc Partner Stablecoin Onboarding Conformance: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-42-arc-fit-diagnostic. Output feeds: art-45-arc-xreserve-linter. Open at: https://ainumbers.co/chaingraph/art-110-arc-partner-stablecoin-onboarding.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ccyNo
gapsNo
gradeNo
verdictNo
eligibleNo
risk_scoreNo
tech_scoreNo
home_regimeNo
reserve_scoreNo
composite_gradeNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds real behavioral context: default server-side execution on Cloudflare Workers, compute:'browser' returning a delegation URL, gpu:true always delegating, transient non-retained input processing, and export of an AP2 artifact with execution_hash for provenance. This meaningfully exceeds what the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the identity and compute behavior, which are the useful parts, but the block also carries template cruft (full URL, FV-status receipt sentence) that dilutes the signal. The 'not stored, logged, or retained' clause earns its place; the trailing snapshot explanation does not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and full annotations exist, so return values and safety need not be re-explained, and the description covers compute modes, provenance, and chaining. What is missing is the substantive purpose of the scoring function itself, leaving an agent able to invoke it mechanically but not to reason about when it is the right tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter is documented, including the compute enum and the parent_hashes/parent_tool_ids ordering constraint, so the schema does the heavy lifting. The description reinforces the compute-mode semantics but adds no syntax or format detail beyond the schema, warranting the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the name ('Arc Partner Stablecoin Onboarding Conformance') and labels it a 'compute node (compliance_mandate)', which gives a general sense of a conformance-scoring node but never states what it actually scores or what its decision function evaluates. Siblings like route_partner_stablecoin_jurisdiction and lint_arc_xreserve_config are not differentiated. Purpose is implied, not specified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides pipeline context ('Consumes upstream artifacts from: art-42-arc-fit-diagnostic. Output feeds: art-45-arc-xreserve-linter') and a data-handling constraint ('Use synthetic or anonymised inputs only'), which is genuinely useful. However there is no explicit when-to-use vs alternative guidance and no statement of preconditions for the chaining.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_payee_name_matchPayee Name-Match Score (VoP/CoP)C
Read-onlyIdempotent
Inspect

Payee Name-Match Score (VoP/CoP): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-376-score-payee-name-match.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
match_bandNo
match_thresholdNo
compliance_flagsNo
algorithm_versionNo
close_match_thresholdNo
entity_suffix_strippedNo
normalized_account_nameNo
transliteration_in_scopeNo
normalized_reference_nameNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/non-destructive/idempotent/closed-world, but the description adds genuinely useful behavior: deterministic computation, transient processing with no storage or logging, forced browser delegation for gpu:true nodes, and export of an AP2 artifact carrying an execution_hash for chain provenance. A 'use synthetic or anonymised inputs only' warning and the offline-verifiable snapshot note are also real disclosure. It stops short of describing score semantics or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is dominated by infrastructure boilerplate (Cloudflare Workers kernels, browser delegation, FV-status hash URL) and front-loads a restatement of the name. Only the privacy and provenance sentences serve tool selection or invocation, so much of the length does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but the two essentials for a compliance scoring tool are absent: what the name-match score actually evaluates and which fields policy_parameters requires for this specific decision function. Given the free-form input object and the large VOP sibling set, the description is not complete enough to call with confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, and parent_tool_ids are already documented; the description adds little beyond repeating compute modes. The free-form policy_parameters object is the one place meaning is missing, and both description and schema punt with 'See the tool's manifest for field names', leaving the actual decision inputs unnamed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify the verb+resource (score a payee name match for VoP/CoP), but the description itself only restates the name and labels it an 'OpenChainGraph compute node (compliance_mandate)'. It never explains what the score means, what it compares, or how a result should be interpreted, so the agent gets no purpose detail beyond the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description covers compute-mode selection ('auto'/'browser', server vs browser delegation), which is invocation mechanics rather than when-to-use guidance. It never says when to choose this tool over VOP siblings such as simulate_vop_matching, run_vop_readiness_diagnostic, or build_vop_session_receipt, and offers no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_sanctions_screening_qualitySanctions Screening-Program Quality ScorerC
Read-onlyIdempotent
Inspect

Sanctions Screening-Program Quality Scorer: OpenChainGraph compute node (model_governance). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-92-screening-list-coverage-checker, art-93-fuzzy-match-calibration-scorer. Output feeds: cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-97-sanctions-screening-quality-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
composite_pctNo
program_gradeNo
wolfsberg_noteNo
component_scoresNo
component_weightsNo
reference_versionNo
improvement_prioritiesNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, yet the description adds real behavior beyond them: deterministic execution, transient processing with no storage or logging, a synthetic/anonymised-input-only constraint, EVM-style browser delegation for gpu:true nodes, and an execution_hash AP2 export for provenance. These are concretely useful constraints an agent must honor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Structure is poor: the front-loaded sentence is a title restatement, the middle is repeated boilerplate ('Deterministic OpenChainGraph compute node'), and the trailing FV-status URL plus raw 64-hex receipt hash is noise an agent cannot act on. Little of the text earns its place before the actual purpose is clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not owed, and chaining/provenance/privacy are covered. However the description never fills the real gap: policy_parameters is untyped and deferred to an external manifest ('See the tool's manifest for field names'), so the agent still doesn't know what decision inputs to supply or what the score means.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute/parent_hashes/parent_tool_ids/policy_parameters are already documented in the schema and the baseline is 3. The description's compute-mode text largely echoes the schema's own compute description and adds no field-level syntax or format detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause restates the title ('Sanctions Screening-Program Quality Scorer: OpenChainGraph compute node') rather than describing the operation, and the body is dominated by compute-infrastructure boilerplate. It does add useful scope via the upstream artifacts it consumes (list-coverage-checker, fuzzy-match-calibration-scorer), implying it aggregates those into a quality score, but it never states what 'screening-program quality' comprises or what is actually computed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use/when-not guidance and no routing to the many adjacent siblings (run_sanctions_screening_fit, check_screening_list_coverage, score_fuzzy_match_calibration, build_sanctions_screening_evidence_pack). The artifact chain ('consumes from…', 'output feeds…') hints at pipeline position but leaves selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_taxonomy_alignmentEU Taxonomy Alignment ScorerB
Read-onlyIdempotent
Inspect

EU Taxonomy Alignment Scorer: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-68-carbon-compliance-fit-diagnostic. Output feeds: art-74-taxonomy-kpi-gar-aggregator, art-75-eugb-factsheet-validator, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-73-taxonomy-alignment-scorer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
dnsh_gapsNo
nace_codeNo
referenceNo
is_alignedNo
dnsh_resultsNo
criterion_refsNo
alignment_verdictNo
primary_objectiveNo
safeguards_statusNo
substantial_contribution_statusNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description still adds real behavior: transient processing with no storage, logging, or retention, and export of an AP2 artifact carrying execution_hash for chain provenance. It does not describe latency, kernel availability limits, or failure modes for nodes without a registered kernel.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A large share of the text is provenance/marketing boilerplate — the artifact URL, the 64-hex FV-status receipt, and a long list of upstream/downstream artifact IDs — which does not help an agent select or invoke the tool. The genuinely useful statements (compute modes, transient input handling) are buried mid-paragraph after infrastructure preamble.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, the call-path inputs live in a free-form policy_parameters object whose field names are explicitly offloaded to an external manifest, so an agent cannot fully determine how to invoke the tool from this definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates compute-mode semantics but adds nothing about policy_parameters beyond deferring to "the tool's manifest", which leaves the actual scoring inputs undiscoverable from the definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title plus the opening line identify a specific verb+resource: scoring EU Taxonomy alignment as a deterministic OpenChainGraph compute node in the compliance_mandate family. It does not, however, differentiate itself from near neighbors such as aggregate_taxonomy_kpi_gar or run_carbon_compliance_fit, so an agent must infer the boundary from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives operating guidance (compute:"auto" vs "browser", gpu:true always delegates) and a hard constraint to use only synthetic or anonymised inputs. It never states when to prefer this scorer over sibling scoring/aggregation tools, so usage is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

score_tempo_validator_readinessTempo Validator Readiness ScorerC
Read-onlyIdempotent
Inspect

Tempo Validator Readiness Scorer: OpenChainGraph compute node (infrastructure_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-41-tempo-validator-readiness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds real value beyond them: determinism, server-side vs browser delegation behavior for gpu nodes, transient processing with no storage/logging/retention, synthetic-input requirement, and AP2 artifact export with execution_hash. That is meaningful operational context, though it says nothing about latency, limits, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is poor: the first sentences repeat the title and label the tool as an infrastructure compute node before any task-relevant content appears. The FV-status URL and raw 64-hex hash consume space without helping an agent decide or invoke.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, and policy_parameters is an open object whose field names are deferred to an external 'manifest', so an agent cannot know what to supply. The description does cover chaining, compute modes, and artifact export, which partly offsets that gap, but the core input payload remains opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids, and policy_parameters are already documented in the schema. The description paraphrases the compute semantics and the chaining intent but adds no syntax or field-level detail beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mostly restates the title ('Tempo Validator Readiness Scorer: OpenChainGraph compute node') and then describes execution mechanics rather than what the scoring actually determines or what a 'tempo validator readiness' score covers. Nothing distinguishes it from close siblings such as run_tempo_fit_diagnostic, prevalidation_readiness_scorer, or score_mcp_readiness. A reader can tell it is a compute node but not what business decision the score supports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this scorer versus the many other readiness/fit tools in the catalog. The compute:auto/server/browser guidance is invocation mechanics, not selection guidance, and no alternative is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_je_rulesetJournal-Entry Ruleset ScreenC
Read-onlyIdempotent
Inspect

Journal-Entry Ruleset Screen: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-462-je-ruleset-screen.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
active_rulesNo
flagged_countNo
total_entriesNo
flagged_entriesNo
ruleset_versionNo
rule_params_usedNo
rule_trip_countsNo
missing_policy_inputsNo
extract_population_hashNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, destructive=false, so the safety profile is covered. The description does add genuinely useful non-schema behavior: transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, deterministic execution, and an AP2 export containing execution_hash. However, it discloses nothing about the tool's own decision behavior (what triggers a flag, confidence, or severity), which is the part an agent most needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure boilerplate (Cloudflare Workers, gpu:false kernels, browser delegation URLs) and a URL plus a 64-hex receipt filename. Sentences about the FV-status snapshot serve an audit use case the calling agent likely does not need, and the actual purpose is buried behind compute-mode mechanics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations are rich, so those burdens are covered, but for a domain tool with a nested policy_parameters object and a ruleset decision function the description is silent on what the decision returns and how policy_parameters map to the ruleset. The persisted behavioral facts it does give (transient processing, synthetic inputs) are useful but incomplete relative to the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters including compute and the parent_hashes/parent_tool_ids pairing are fully documented in the schema. The description's compute paragraph merely paraphrases the enum description and adds no syntax, format, or field-name guidance for policy_parameters. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mostly restates the name/title ('Journal-Entry Ruleset Screen: OpenChainGraph compute node') and then talks about execution infrastructure. It never says what the screen actually does — what rule set is applied to journal entries, what a pass/fail or finding looks like, or why an agent would call it. An agent cannot distinguish this from dozens of other 'screen_*'/'compute_*' siblings based on this text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on compute mode selection ('auto' vs 'browser' vs server), but that is execution plumbing already documented in the schema's compute enum. There is no statement of when to use this tool versus alternatives like screen_sanctions_private, check_sod_matrix, or the many reconcile_/validate_ journal-entry siblings, and no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_onledger_transfer_batchOn-Ledger Transfer Batch ScreenC
Read-onlyIdempotent
Inspect

On-Ledger Transfer Batch Screen: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-288-map-iso20022-to-evm-calldata. Open at: https://ainumbers.co/chaingraph/art-291-screen-onledger-transfer-batch.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
profileNo
batch_cleanNo
per_transferNo
coverage_gapsNo
transfer_countNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover read-only/idempotent/non-destructive, and the description adds real context beyond them: deterministic execution, server-vs-browser delegation semantics, gpu:true always delegating, transient processing with no storage or logging, the synthetic-inputs-only constraint, and the AP2 artifact with execution_hash provenance. It lacks detail on what the screening output means or any rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the title and compute semantics, which is good, but the body is padded with a long URL and a raw FV-status hash filename sentence that does not help an agent select or invoke the tool. The key screening purpose is buried behind boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return format need not be explained, and upstream artifact linkage plus privacy constraints are covered. However, the core decision criteria for the screen are deferred to an unspecified manifest, leaving the most important behavior undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already well documented. The description restates the compute default and the artifact-chaining purpose of parent_hashes/parent_tool_ids but adds no syntax or format detail; for policy_parameters it explicitly points to an external manifest rather than explaining fields. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a "compliance_mandate" OpenChainGraph compute node for screening an on-ledger transfer batch, and names an upstream artifact. But it never says what the screen actually checks or decides — that is deferred to a manifest not included here — so it cannot be cleanly distinguished from siblings like screen_tip20_transfer_batch or screen_sanctions_private.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the compute-mode defaults and that upstream artifacts come from art-288-map-iso20022-to-evm-calldata, which is a partial usage hint. There is no when-to-use / when-not-to-use guidance and no routing against the other transfer/sanctions screening tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_sanctions_privatePrivate-Input Sanctions ScreenC
Read-onlyIdempotent
Inspect

Private-Input Sanctions Screen: OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-413-screen-sanctions-private.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cleanNo
coverageNo
pii_noteNo
screenedNo
hit_countNo
list_versionNo
not_legal_adviceNo
regulatory_basisNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses several genuinely useful traits: deterministic execution, transient processing with no storage/logging/retention, the compute-mode routing (server vs browser delegation URL), and export of an AP2 artifact carrying execution_hash for provenance. It does not contradict the annotations. It stops short of describing failure modes or output content, but the added context clearly exceeds the annotation bar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It front-loads identity but spends most of its length on compute-mode boilerplate that duplicates the schema, and closes with a long FV-status receipt URL plus a sentence explaining snapshot semantics that adds little to tool selection. Not bloated to the point of uselessness, but several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but the tool's core input surface (policy_parameters for the decision function) is left to an unlinked manifest, and the description never states what the screen actually decides or returns. For a compliance-sensitive screening tool with a nested free-form parameter object, this leaves the agent guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for compute, parent_hashes, parent_tool_ids, so the description's restatement of compute modes is redundant. The critical policy_parameters object is deferred with 'See the tool's manifest for field names' — the description neither names the fields nor links the manifest, so it fails to compensate for the real gap, but baseline 3 applies given the documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('Private-Input Sanctions Screen') and labels it an 'OpenChainGraph compute node (analytics_mandate)', but never explains what sanctions screening does, what the decision function evaluates, or what distinguishes it from siblings like run_sanctions_screening_fit or score_sanctions_screening_quality. An agent learns the infrastructure wrapper but not the tool's actual job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only real guidance is 'Use synthetic or anonymised inputs only', which is valuable but is a constraint rather than a when-to-use rule. There is no statement of when this tool should be selected over the sibling sanctions tools, nor what the 'private-input' variant buys the caller.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_tip20_transfer_batchTempo On-Chain AML & Travel Rule ScreenerB
Read-onlyIdempotent
Inspect

Tempo On-Chain AML & Travel Rule Screener: OpenChainGraph compute node (aml_rule). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-37-tempo-stablecoin-issuance. Output feeds: art-39-tempo-zone-disclosure, art-10-amla-transaction-typology-risk-scorer. Open at: https://ainumbers.co/chaingraph/art-38-tempo-onchain-aml.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNo
resultsNo
flag_countNo
pass_countNo
batch_verdictNo
escalate_countNo
tr_threshold_usdNo
sar_threshold_usdNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered; the description goes further by disclosing transient processing (inputs not stored, logged, or retained), the synthetic-input requirement, deterministic execution, compute-mode delegation behavior, and the exported AP2 artifact with execution_hash. Missing auth/permission and rate-limit details keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with the tool identity, but the single dense paragraph then mixes compute mechanics, data-handling policy, artifact lineage, a raw URL, and a long FV-status hash path without structure. Several sentences (the offline-receipt explanation, the full hash path) do not help an agent select or call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the annotations cover the safety profile. However, for a nested policy_parameters screening tool the description supplies no field-level or decision-level context, and it omits prerequisites (consuming art-37-tempo-stablecoin-issuance) beyond a bare lineage note. It is adequate but leaves real gaps about the core screening semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics that the schema already provides and adds no field names or syntax for policy_parameters, which the schema defers to a manifest. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line establish the domain (AML/Travel Rule screening of TIP-20 transfers) and the tool family (OpenChainGraph compute node, aml_rule), but the body never states what the decision function actually does — no verb describing the screening verdict, thresholds, or scope. It leans on the name/title for purpose while spending its sentences on compute routing and artifact plumbing. It also does not distinguish itself from close siblings such as screen_onledger_transfer_batch or score_aml_typologies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to invoke this screener versus alternatives, nor on prerequisites such as requiring the upstream art-37 artifact. The only conditional advice concerns compute mode selection (auto vs browser), which is a parameter choice, not tool-selection guidance. Nothing routes the agent between this and the many other screening/AML siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sdjwt_issueIssue a Selective Disclosure JWT (RFC 9901)AInspect

Issues a Selective Disclosure JWT (RFC 9901) from a claims object, marking selected top-level claim keys as selectively disclosable via salted-hash digests in the _sd array. Signed EdDSA over a fresh ephemeral did:key (generated per call, not reused). Pair with sdjwt_present to build a redacted presentation from the returned sd_jwt.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimsYesClaim key-value pairs to issue (required, at least one entry).
subjectNosub claim. Default: "subject-001".
selective_keysNoTop-level claim keys marked selectively disclosable. Keys not listed stay always-disclosed cleartext.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behavioral traits beyond annotations: ephemeral key generation per call, EdDSA signing, and selective disclosure mechanism. No contradictions with annotations. Could add that the key is not stored, but current detail is good.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. Front-loaded with action and standard followed, then pairing guidance. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, mechanism, and pairing. Could explicitly state the return format (string), but the sibling tool's description likely fills the gap. With no output schema, this is mostly sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions. The description adds meaning by explaining how claims and selective_keys interact to form digest-based selective disclosure, which clarifies the parameter roles beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it issues an SD-JWT per RFC 9901, explains the selective disclosure mechanism via salted-hash digests, and distinguishes from the sibling tool sdjwt_present by specifying its role in creating redacted presentations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit pairing guidance with sdjwt_present and notes key ephemerality per call. Does not list when not to use or other alternatives, but the pairing is strong enough for an agent to understand workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sdjwt_presentPresent a redacted Selective Disclosure JWTAInspect

Builds a redacted presentation from an existing SD-JWT (as returned by sdjwt_issue), keeping only the listed disclosures. Pass aud to add a KB-JWT holder-binding (a fresh ephemeral holder key is generated per call). Pass issuer_did (the sd_jwt's "issuer" field) to also verify the JWS and return the verifier_view -- exactly the claim set a relying party would resolve -- plus an OCG receipt of the presentation activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
audNoKB-JWT audience. Supplying this adds a holder-binding KB-JWT to the presentation.
nonceNoKB-JWT nonce. Auto-generated if aud is set and this is omitted.
sd_jwtYesAn SD-JWT string with all disclosures attached, as returned by sdjwt_issue.
keep_keysNoDisclosure keys to keep in the presentation. Default: none (all disclosures redacted).
issuer_didNoThe sd_jwt's issuer did:key, to verify the JWS and populate verifier_view + receipt.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the minimal annotations (all false), the description discloses key behaviors: a fresh ephemeral holder key is generated per call when aud is provided, and issuer_did triggers JWS verification resulting in verifier_view and OCG receipt. It does not mention side effects, but the transformation is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences efficiently convey core purpose, optional features, and return values. Information is front-loaded with no redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the basic return values (verifier_view, OCG receipt) for the issuer_did case, but does not explicitly state the default output (presumably the redacted SD-JWT string) when issuer_did is omitted. Overall adequate for a moderate-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema descriptions are already informative (100% coverage), the tool description adds value by explaining parameter interactions (e.g., nonce auto-generation when aud is set, verification flow with issuer_did) and the default for keep_keys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds a redacted presentation from an SD-JWT, keeping only listed disclosures. It distinguishes from its sibling sdjwt_issue, which issues SD-JWTs, making the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that the tool uses an SD-JWT from sdjwt_issue and details when to use optional parameters (aud, issuer_did). However, it does not explicitly state when not to use this tool or directly compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_agentic_checkout_protocolAgentic Checkout Protocol SelectorB
Read-onlyIdempotent
Inspect

Agentic Checkout Protocol Selector: OpenChainGraph compute node (routing_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-20-acp-ucp-product-feed-conformance-auditor, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-19-agentic-checkout-protocol-selector.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
profileNo
primary_nameNo
primary_scoreNo
protocol_scoresNo
viable_protocolsNo
recommended_protocolsNo
primary_recommendationNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real value beyond them: deterministic execution, transient processing with no storage/logging/retention, browser-delegation behavior for gpu:true or compute:'browser', and an exported AP2 artifact carrying execution_hash for provenance. These are genuine behavioral traits not present in the annotation set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front-loaded title and compute explanation are useful, but the text then balloons with noise: a marketing URL, a FV-status receipt URL and 64-char hash, and repeated 'Deterministic OpenChainGraph compute node' phrasing. Signal is buried in boilerplate that does not help an agent select or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-object compute node with 4 params and an output schema, the description covers execution mode, data handling, and downstream consumption (which tools the output feeds), so return-format explanation is unnecessary. It is largely complete, though it omits the selection logic the tool actually performs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters thoroughly. The description restates the compute-mode semantics but adds no syntax or field detail beyond the schema, which sets the baseline at 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name states a clear verb+resource (select agentic checkout protocol), but the description itself spends its words on compute-node plumbing ('routing_policy', 'deterministic compute node', kernel/GPU mechanics) rather than stating what the tool actually decides or selects among. It never names the candidate protocols (e.g. AP2/ACP/UCP) or the selection criteria, so an agent must infer the purpose from the title alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is an input constraint ('Use synthetic or anonymised inputs only') and a compute-mode explanation, but no when-to-use guidance relative to siblings like compare_agentic_rail_protocols, compare_agentic_payment_protocols, or the downstream auditor it feeds. No exclusions, prerequisites, or alternative-selection logic are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_cbe_licenseCan't Be Evil License SelectorC
Read-onlyIdempotent
Inspect

Can't Be Evil License Selector: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-196-cant-be-evil-license-selector.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cbe_idNo
caveatsNo
commercialNo
disclaimerNo
sublicenseNo
arweave_uriNo
derivativesNo
exclusivityNo
launch_aliasNo
reference_urlNo
creator_retainsNo
matrix_verifiedNo
current_enum_nameNo
arweave_uri_legacyNo
license_version_indexNo
objectionable_use_restrictionNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds genuinely useful behavior beyond them: auto vs. server vs. browser compute resolution, forced browser delegation for gpu:true nodes, transient processing with no logging or retention, and emission of an AP2 artifact carrying execution_hash. It stops short of describing what the license decision produces, but the execution semantics are unusually well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is boilerplate-heavy and front-loaded with infrastructure jargon rather than the purpose, and it closes with a long provenance URL plus an FV-status receipt hash that an agent does not need in order to select or call the tool. Several sentences do not earn their place relative to the core task.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations and an output schema are present, so return-value format and safety need not be described. However, for a domain-specific compliance tool the core semantics — what the 'Can't Be Evil' election chooses among and what policy_parameters expect — are entirely absent, leaving the description incomplete where it matters most.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented in the schema. The description largely restates the compute-mode semantics already in the schema and adds little new meaning; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description spends nearly all of its text on OpenChainGraph execution plumbing (compute modes, GPU delegation, AP2 artifacts) and never states in plain language what the selector actually decides — which license it picks, on what criteria, or what it returns. The name 'Can't Be Evil License Selector' carries the only real purpose signal, and siblings like choose_cc_license and select_embedded_license are never differentiated from it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives ('choose_cc_license', 'select_embedded_license', 'assemble_license_terms' are all adjacent siblings). The only guidance-like sentence, 'Use synthetic or anonymised inputs only,' is an input-handling constraint rather than routing advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_embedded_licenseEmbedded License SelectorB
Read-onlyIdempotent
Inspect

Embedded License Selector: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-198-cross-license-rights-comparator. Output feeds: art-204-license-compatibility-checker. Open at: https://ainumbers.co/chaingraph/art-203-embedded-license-selector.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
labelNo
rightsNo
tier_idNo
disclaimerNo
source_urlNo
descriptionNo
decision_pathNo
source_familyNo
inputs_resolvedNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint/idempotentHint/destructiveHint=false), the description discloses substantial behavior: deterministic execution, server- vs client-side compute routing, that input processing is transient and never stored/logged, and that an AP2 artifact with execution_hash is exported for provenance. That is meaningfully more than the annotations convey, though it omits failure modes and what the decision returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core operational content (compute modes, transient processing, artifact export) is front-loaded, but the paragraph is a dense run-on padded with boilerplate — a 64-character FV-status hash, a full URL, and a 'snapshot, not a subscription' disclaimer — that does not help an agent decide or invoke. Signal-to-noise is mediocre.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the provenance/consumption edges are covered. The major gap is that policy_parameters is left unspecified ('See the tool's manifest for field names'), leaving the agent without the inputs needed to actually drive the decision function of this compliance_mandate node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description's compute-mode explanation largely duplicates the schema's own 'compute' description (v0.4 Compute Binding), and it defers actual field names for policy_parameters to 'the tool's manifest', adding no parameter meaning on its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels this an 'OpenChainGraph compute node (compliance_mandate)' and states its pipeline position (consumes from art-198-cross-license-rights-comparator, feeds art-204-license-compatibility-checker), which distinguishes it from siblings. However it never explains what 'embedded license selection' actually computes — the sole purpose statement is the title itself, so an agent cannot tell what decision this node renders versus select_cbe_license or choose_cc_license.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real usage rules for compute mode ('auto' default vs 'browser' forcing client-side delegation, gpu:true always delegating) and a hard constraint ('Use synthetic or anonymised inputs only'). It does not, however, say when to choose this selector over the many sibling license tools, so tool-selection guidance is only implied through the artifact chain.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_agent_spend_policyAgentic Mandate SandboxC
Read-onlyIdempotent
Inspect

Agentic Mandate Sandbox: OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-27-agentic-readiness-diagnostic. Output feeds: art-16-google-ap2-mandate-builder. Open at: https://ainumbers.co/chaingraph/art-15-agentic-mandate-sandbox.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
railNo
schemaNo
corridorNo
complianceNo
mandate_idNo
spend_capsNo
time_windowsNo
velocity_rulesNo
mcc_constraintsNo
rejected_inputsNo
approval_thresholdsNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses genuinely useful traits: deterministic execution, transient processing with no storage/logging/retention, server-vs-browser delegation semantics, and that it exports an AP2 artifact with execution_hash for provenance. These are non-obvious behaviors an agent would otherwise have to guess.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with boilerplate: 'OpenChainGraph compute node' appears twice, plus a full URLs and a 64-character FV-status hash that are irrelevant to tool selection. The genuinely useful constraint (synthetic inputs only, transient processing) is buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists and annotations cover the safety profile, the description need not explain returns or safety. However, it omits the functional purpose of the decision function and the shape/meaning of policy_parameters (deferred to 'see the tool's manifest'), which are the core of invoking this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters thoroughly. The description's explanation of compute modes largely duplicates the schema's own compute description and adds no field-level meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool as an 'OpenChainGraph compute node' and 'Agentic Mandate Sandbox' but never states what the simulation actually computes (e.g. that it evaluates an agent spend/mandate policy). It restates the title and adds infrastructure metadata instead of a functional verb+resource, and it never distinguishes itself from the sibling simulate_spend_policy or agentic_mandate_sandbox.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only actionable guidance is 'Use synthetic or anonymised inputs only' and the compute-mode behavior, which is really parameter behavior. There is no statement of when to choose this tool over simulate_spend_policy or the AP2 mandate builders, nor any prerequisite or exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_app_fraud_graphAPP Fraud Graph SimulatorB
Read-onlyIdempotent
Inspect

APP Fraud Graph Simulator: OpenChainGraph compute node (aml_rule). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-09-dora-incident-classifier, art-10-amla-transaction-typology-risk-scorer. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/mms-03-app-fraud-graph.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower, yet the description adds real value: deterministic execution, transient non-retained processing, a synthetic/anonymised-inputs-only constraint, and browser-delegation behavior for gpu:true nodes. It still omits failure modes and kernel-registration prerequisites, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and provenance are front-loaded, but the passage carries filler — the FV-status 'snapshot, not a subscription' tangent and a raw URL/hash — that an agent does not need to invoke the tool. The compute-binding repetition across description and schema also costs space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema the description must cover returns, and it partially does by stating that an AP2 artifact with execution_hash is exported and listing upstream/downstream artifact ids. But actual decision-function inputs are deferred to an external manifest, leaving the caller unable to know what to put in policy_parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters are already documented; the description's compute-mode prose largely restates the 'compute' enum semantics. It adds no syntax for parent_hashes/parent_tool_ids pairing beyond what the schema says, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph compute node of type aml_rule and names it as an APP fraud graph simulator, which the sibling list confirms is distinctive. However, it never states what the simulation actually computes or decides — the real work is hidden behind 'See the tool's manifest for field names', so the agent learns more about the plumbing than the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to choose this simulator over alternatives such as score_aml_typologies or detect_transaction_anomalies, nor any prerequisites for chaining. The compute-mode discussion is a mechanics note, not usage guidance about when this tool is the right one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_frtb_esFRTB IMA Expected Shortfall Pre-ValidatorA
Read-onlyIdempotent
Inspect

FRTB IMA Expected Shortfall Pre-Validator: OpenChainGraph compute node (risk_parameter). Regulatory deadline: 2028-01-01 (UK FRTB-IMA go-live January 2028; EU slipped to ~2029-30. Pre-validation educational tool.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: qfa-02-portfolio-var-engine, sim-03-basel-rwa-scenario-modeler. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/rca-01-frtb-ima-pre-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
sa_floorNo
pla_ratioNo
capital_imaNo
es_97_5_pctNo
n_positionsNo
n_scenariosNo
floor_bindingNo
es_by_lh_classNo
nmrf_surchargeNo
pla_test_statusNo
capital_requiredNo
confidence_levelNo
undiversified_esNo

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it explains compute-mode routing (auto/server/browser, gpu delegation, browser delegation URL), the transient no-storage/no-logging/no-retention data handling, and that it exports an AP2 artifact with execution_hash for provenance. The annotations already cover the safety profile, and the description adds substantial operational context on top.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose and compute-model detail effectively, but then pads with a regulatory-deadline aside and an FV-status paragraph containing a full URL and 64-character hash that do little to help tool selection. Useful content is diluted by provenance boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and nested objects are present, so return values need not be explained. The description covers compute semantics, data handling, and chain placement (consumes from qfa-02/sim-03, feeds ptg-01), leaving it nearly complete for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute/parent_hashes/parent_tool_ids/policy_parameters. The description largely restates the compute-mode semantics and adds little on policy_parameters beyond deferring to the manifest, so it sits at the high-coverage baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource (FRTB IMA Expected Shortfall pre-validation) and frames it as a deterministic compute node in a named chain. It does not explicitly contrast itself with neighbouring compute tools (e.g. simulate_var_monte_carlo, compute_portfolio_var), so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives implicit context ('Pre-validation educational tool', 2028 regulatory deadline) and a clear input constraint ('Use synthetic or anonymised inputs only'), plus upstream/downstream chaining hints. However it never states when to choose this node over an alternative, so usage remains inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_gpi_tracker_lifecycleSWIFT GPI Tracker Lifecycle SimulatorB
Read-onlyIdempotent
Inspect

SWIFT GPI Tracker Lifecycle Simulator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-245-mt-mx-translation-fidelity-scorer. Open at: https://ainumbers.co/chaingraph/art-244-gpi-tracker-lifecycle-simulator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
pii_noteNo
sla_noteNo
amount_usdNo
is_settledNo
is_rejectedNo
is_terminalNo
next_statusNo
sla_breachedNo
table_sourceNo
hours_elapsedNo
table_versionNo
current_statusNo
sla_hours_limitNo
lifecycle_statesNo
regulatory_basisNo
transition_validNo
stage_descriptionNo
transition_reasonNo
allowed_next_statusesNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnly/idempotent/non-destructive, the description still adds real context: transient, non-retained processing, deterministic execution, the server-vs-browser delegation behavior, and the AP2 artifact with execution_hash. These are non-obvious traits not derivable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-node versus simulation purpose is mixed and 'Deterministic OpenChainGraph compute node' is stated twice. Lineage/tooling metadata (URL, FV-status hash) is verbose but somewhat justified for provenance; overall it reads as a padded blob rather than crisp front-loading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and compute/delegation/privacy behavior is covered. However, for a complex compliance simulation the description never states what the lifecycle simulation evaluates or outputs, leaving the domain contract thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description recaps the compute-mode semantics (auto/server/browser) that the schema already documents and adds little about parent_hashes, parent_tool_ids, or policy_parameters beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title names a specific resource (SWIFT GPI tracker lifecycle) but the description itself never explains what the simulation actually computes or decides; it leans on boilerplate ('OpenChainGraph compute node (compliance_mandate)'). An agent can infer intent from the title but not distinguish this from sibling simulate_* tools from the body text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is an input constraint ('Use synthetic or anonymised inputs only') and a downstream pointer ('Output feeds: art-245-mt-mx-translation-fidelity-scorer'), which is useful routing. But there is no when-to-use vs when-not guidance and no alternative tool named among the many simulate_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_ict_cascadeDORA ICT Cascade SimulatorB
Read-onlyIdempotent
Inspect

DORA ICT Cascade Simulator: OpenChainGraph compute node (infrastructure_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-09-dora-incident-classifier. Output feeds: sim-07-open-banking-consent-flow-stress, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/pnr-01-dora-ict-cascade-simulator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful behavior beyond that: inputs are processed transiently and not stored/logged/retained, browser mode returns a delegation URL, and the tool emits an execution_hash for chain provenance. No contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Behavioral facts are front-loaded and dense, which is good, but the closing FV-status sentence with the long hash URL and 'a snapshot, not a subscription' explanation consumes significant space for a provenance pointer. The core useful content could be stated in roughly half the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by stating the return is an AP2 artifact carrying execution_hash, plus identifying upstream and downstream chain links, transient processing, and the compute delegation path. For a zero-required-parameter compute node this is largely complete; only the substantive simulation output semantics remain unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the compute enum, parent_hashes, parent_tool_ids ordering, and policy_parameters are all documented in the schema itself. The description restates the compute-mode rules but adds no field-level semantics (e.g. policy_parameters field names, chaining order requirements) beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description establishes the tool's role as an OpenChainGraph compute node that exports an AP2 artifact and consumes artifacts from art-09-dora-incident-classifier, so an agent can place it in the chain. However, it never states what the DORA ICT cascade simulation actually computes or decides — the substantive purpose is left to the name and title. The mechanics are clear; the meaning is not.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It describes the compute-mode branching (auto/server/browser, gpu:true always delegates) and warns 'use synthetic or anonymised inputs only', which is a real usage constraint. But it gives no when-to-use guidance relative to siblings like run_dora_readiness_diagnostic, classify_dora_incident, or run_chain, and no exclusions. Routing is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_output_floorBasel Output-Floor Phase-In SimulatorA
Read-onlyIdempotent
Inspect

Basel Output-Floor Phase-In Simulator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-358-simulate-output-floor.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
rule_statusNo
floor_ever_bindsNo
regulatory_basisNo
standardized_rwaNo
binding_floor_yearNo
internal_model_rwaNo
capital_impact_pathNo
max_incremental_rwaNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, yet the description adds genuinely new traits: determinism, transient processing with no storage/logging/retention, and the fact that it exports an AP2 artifact carrying an execution_hash for chain provenance. That is substantive context beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavioral facts are front-loaded well, but the opener duplicates itself ('Basel Output-Floor Phase-In Simulator: OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and the trailing spec URL plus FV-status receipt add bulk that is only marginally actionable at call time.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no elaboration, and the annotations carry the safety profile. The description covers compute routing, privacy obligations, and provenance export, leaving only sibling disambiguation and parameter specifics unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description restates the compute-mode semantics but adds no new syntax or meaning for parent_hashes, parent_tool_ids, or policy_parameters, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific subject (Basel Output-Floor Phase-In Simulator) and classifies it as an OpenChainGraph compute node under a compliance_mandate, so the resource and operation are clear. It does not, however, distinguish itself from near siblings like compare_basel_2023_vs_2026 or compute_basel31_delta, leaving the agent to infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives conditional guidance for the compute modes ('auto'/'browser'/'gpu:true delegates') and a real usage constraint ('use synthetic or anonymised inputs only'), which is more than nothing. But it never states when to reach for this tool rather than a sibling, so the when-to-use dimension is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_spend_policyAgent Spend-Policy SimulatorC
Read-onlyIdempotent
Inspect

Agent Spend-Policy Simulator: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-01-ap2-mandate-chain-validator, art-04-agent-identity-attestation-checker. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-02-agent-spend-policy-simulator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
fail_countNo
pass_countNo
fail_rate_pctNo
compliance_flagsNo
top_fail_reasonsNo
total_transactionsNo
total_approved_spendNo
bypass_paths_detectedNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, it discloses that inputs are processed transiently and not stored, logged or retained, that execution is deterministic, how compute modes route server-side vs browser delegation, and that it exports an AP2 artifact with execution_hash. These are meaningful behavioral traits the annotations do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense run-on of platform boilerplate: compute-binding jargon, a documentation URL, artifact IDs for upstream/downstream nodes, and an FV-status hash path. These do not help an agent decide or invoke the tool and crowd out the actual purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the annotations cover the safety profile. However, for a 4-parameter simulation tool the decision function and policy_parameters fields remain opaque, leaving the agent unable to know what inputs are meaningful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode semantics and defers policy_parameters field names to 'the tool's manifest', adding no meaning beyond the schema — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'Agent Spend-Policy Simulator' OpenChainGraph compute node for payment_policy, but it never states in plain terms what the simulation actually evaluates or returns. It also fails to distinguish itself from the sibling simulate_agent_spend_policy, so an agent cannot tell the two apart from the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage-shaped guidance is 'Use synthetic or anonymised inputs only' and the compute-mode selection rules, which duplicate the schema. There is no statement of when to choose this tool over simulate_agent_spend_policy or any other sibling, and no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_stablecoin_reserveMiCA Stablecoin Reserve Stress SimulatorA
Read-onlyIdempotent
Inspect

MiCA Stablecoin Reserve Stress Simulator: OpenChainGraph compute node (liquidity_mandate). Regulatory deadline: 2024-06-30 (MiCA Title III/IV in force June 30 2024 — ART/EMT issuers subject to Article 36 reserve requirements now). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-06-genius-act-reserve-attestation, sim-01-lcr-nsfr-liquidity-stress-test. Output feeds: ptg-01-ap2-prompt-template-generator, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/rca-02-mica-reserve-stress.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
n_pathsNo
verdictNo
scenarioNo
warningsNo
horizon_daysNo
peak_breach_pctNo
compliance_flagsNo
coverage_p5_end_dayNo
coverage_p50_end_dayNo
breach_probability_pctNo
art36_buffer_adequate_pctNo

TDQS

A3.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive, but the description adds materially: server-side vs browser compute delegation, transient input processing with no storage/logging, an explicit 'synthetic or anonymised inputs only' constraint, and export of an AP2 artifact with execution_hash for chain provenance. These are behavioral facts the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the tool title and purpose, which is good, but the body is dense and meanders into the FV-status receipt URL, a long regulatory-deadline aside, and provenance hash detail. Several sentences are tangential to selecting or invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers compute routing, chaining, and privacy. The notable gap is that policy_parameters — the actual stress inputs — are left to an external manifest, so an agent cannot fully construct a meaningful call from this definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics and chaining purpose but defers the actual simulation fields to 'the tool's manifest', adding little beyond the structured data. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title prefix states a specific verb and resource — simulating a MiCA stablecoin reserve stress scenario — and is distinguishable from siblings like recompute_stablecoin_reserve_3source and check_mica_reserve_disclosure. However, the body never actually explains what the simulation computes (reserve adequacy, shortfall under stress), so the purpose is carried almost entirely by the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description names upstream artifacts it consumes and downstream nodes it feeds, plus the June 30 2024 regulatory deadline, which implies when the tool is relevant. But it never states when to prefer this over sibling reserve/stress tools or any exclusions, so usage remains inferred rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_var_monte_carloPortfolio VaR — Monte Carlo (Integer PRNG)C
Read-onlyIdempotent
Inspect

Portfolio VaR — Monte Carlo (Integer PRNG): OpenChainGraph compute node (risk_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: qfa-02-portfolio-var-engine, qfa-03-stress-test-engine. Open at: https://ainumbers.co/chaingraph/art-371-simulate-var-monte-carlo.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
seedNo
n_pathsNo
verdictNo
n_assetsNo
mc_es_pctNo
conf_levelNo
draw_countNo
mc_var_pctNo
correlationNo
es_dollar_mmNo
var_dollar_mmNo
holding_periodNo
prng_algorithmNo
compliance_flagsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, not open-world), the description discloses genuinely useful traits: deterministic execution, transient processing with no storage/logging/retention, the server-vs-browser compute branch, and export of an AP2 artifact with execution_hash for provenance. These additions do not contradict the annotations and clarify operationally significant behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is padded with chain-index URLs, a full FV-status hash and a long disclaimer about snapshots versus subscriptions, plus a restatement of the compute-mode semantics already present in the schema. Several sentences do not help an agent select or invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and annotations cover return shape and safety profile, and provenance/downstream consumers are noted. However, for a compute tool whose real inputs live in an undocumented nested policy_parameters object, the definition leaves an agent unable to know what to pass, which is a material gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the compute/parent_hashes/parent_tool_ids/policy_parameters fields are already documented in the schema; the description's compute-mode prose largely restates it. Critically, the nested policy_parameters object is opaque and the description defers with 'See the tool's manifest for field names', adding no meaning for the actual decision inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and opening line identify the resource (Portfolio VaR) and method (Monte Carlo), and 'OpenChainGraph compute node (risk_control)' gives broad classification, but the description never explains what the simulation actually does or how it differs from the very similar sibling compute_portfolio_var and compute_var_backtest_traffic_light. Most of the text is infrastructure boilerplate rather than purpose specification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no routing to alternatives, despite several closely related siblings (compute_portfolio_var, compute_stress_test_scenarios, compute_var_backtest_traffic_light). The only usable directive is the constraint 'Use synthetic or anonymised inputs only', which is a prerequisite rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_vop_matchingVoP Batch Match-Rate AnalyserB
Read-onlyIdempotent
Inspect

VoP Batch Match-Rate Analyser: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: rca-03-iso20022-address-migration-verifier, art-10-amla-transaction-typology-risk-scorer. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-11-vop-batch-match-rate-analyser.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchNo
no_matchNo
close_matchNo
total_recordsNo
match_rate_pctNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe read-only, idempotent profile, and the description goes beyond them: it states the tool is deterministic, explains the auto/server/browser compute binding and the browser-delegation URL, states inputs are processed transiently and not stored or logged, and notes an AP2 artifact with execution_hash is exported for chain provenance. These are real operational traits an agent could not get from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the title, but the opening two sentences are redundant ("OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.") and the trailing FV-status receipt URL plus its explanation are heavy for a description body. The compute-binding paragraph is long relative to the value it adds over the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description does supply the missing context an agent would otherwise lack: compute binding semantics, privacy/retention behaviour, artifact export for chaining, and the upstream/downstream chain position. Only the concrete meaning of policy_parameters is left fully external (deferred to the manifest).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute enum is documented in full in the schema, so the description's compute-mode paragraph largely duplicates structured data rather than adding to it. parent_hashes, parent_tool_ids and policy_parameters receive no additional semantic explanation in the description (policy_parameters is explicitly deferred to the manifest).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/description restates the name ("VoP Batch Match-Rate Analyser") and labels it an "OpenChainGraph compute node", but never states the actual function in plain terms (e.g. simulating Verification of Payee batch match rates over supplied inputs). The upstream/downstream tool IDs do help place it against near-neighbours like run_vop_readiness_diagnostic and build_vop_session_receipt, but an agent still has to infer the verb+resource from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no sibling is named as an alternative. What is present is placement guidance (which upstream artifacts it consumes, which tool consumes its output) plus a hard input restriction ("Use synthetic or anonymised inputs only"), which is genuine but partial usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_x402_flowx402 Header Decoder, Payload Linter & 402 Flow SimulatorC
Read-onlyIdempotent
Inspect

x402 Header Decoder, Payload Linter & 402 Flow Simulator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-22-agentic-payments-protocol-comparator, art-25-a2a-agent-card-validator. Output feeds: art-03-x402-settlement-modeler, art-18-mcp-developer-readiness-scorecard, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-26-x402-payload-decoder-flow-simulator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
scoreNo
errorsNo
passesNo
schemeNo
is_jsonNo
networkNo
findingsNo
warningsNo
has_acceptsNo
decoded_typeNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely useful behavior: compute:'browser' returns a delegation URL while gpu:true always delegates, inputs are processed transiently and not stored/logged, and an AP2 artifact with execution_hash is exported. That is real operational context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens by repeating the full title verbatim and then spends most of its length on node/kernel provenance, upstream artifact IDs, a URL, and an FV-status hash. The actual purpose and behavior are buried, so the text is poorly front-loaded and padded with boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need no explanation, and provenance/chaining and data-retention behavior are covered. However, for a tool whose core job is decoding/linting/simulating x402 payloads, the description never explains what the decision function evaluates or what policy_parameters should contain, explicitly outsourcing that to a manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description echoes the compute-mode semantics but adds nothing new, and it explicitly defers policy_parameters field names to an external manifest, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description body never states in plain terms what the tool does with an x402 flow; it restates the title and then pivots entirely to OpenChainGraph infrastructure boilerplate ('deterministic OpenChainGraph compute node'). The title implies decode/lint/simulate, but the prose adds no functional detail, and there is no differentiation from close siblings like decode_x402_payment, lint_x402_v2_migration, or model_x402_settlement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no conditions selecting this tool over the many other x402 tools, and no prerequisites or exclusions. The only instruction, 'Use synthetic or anonymised inputs only,' is a data-handling constraint rather than usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

size_ccp_default_fund_cover2CCP Default Fund Cover-2 SizingA
Read-onlyIdempotent
Inspect

CCP Default Fund Cover-2 Sizing: OpenChainGraph compute node (risk_parameter). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: qfa-03-stress-test-engine. Open at: https://ainumbers.co/chaingraph/art-530-default-fund-cover2-sizing.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
as_ofNo
rationaleNo
member_countNo
per_scenarioNo
fund_adequateNo
scenario_countNo
rejected_inputsNo
fund_size_displayNo
shortfall_displayNo
fund_size_minor_unitsNo
shortfall_minor_unitsNo
worst_case_scenario_idNo
worst_case_cover2_requirement_displayNo
worst_case_cover2_requirement_minor_unitsNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower. The description adds genuine behavioral context beyond them: the compute:auto/server/browser delegation semantics, browser delegation URL returns for gpu:true nodes, transient non-retention of inputs, and the exported AP2 execution_hash for provenance. It does not disclose rate limits or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the definition is padded with family boilerplate, a documentation URL, and a long FV-status receipt hash that mostly serves provenance rather than tool selection. It is readable but not lean.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations carry the safety profile. The description covers compute modes, provenance chaining, upstream dependency and the artifact export, which is enough for an agent to invoke it correctly; only the policy_parameters contract remains thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description largely restates the compute-mode semantics already in the schema and adds no field-level meaning (e.g. what policy_parameters fields the cover-2 kernel expects), so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause names a specific verb+resource ('CCP Default Fund Cover-2 Sizing') and identifies it as a risk_parameter compute node, which distinguishes it from the related sibling recompute_ccp_default_waterfall. However, the purpose is buried behind boilerplate framing that is shared across the whole tool family, so the actual computation performed is not described.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the upstream artifact consumer (qfa-03-stress-test-engine) and instructs the use of synthetic/anonymised inputs, which is useful routing context. But it never says when to choose this over alternatives such as recompute_ccp_default_waterfall, nor states preconditions for the parent_hashes chain.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stress_test_ap_redemption_pathAP Concentration + Redemption-Path StressB
Read-onlyIdempotent
Inspect

AP Concentration + Redemption-Path Stress: OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-322-rhc-ap-redemption-stress.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
ap_countNo
liquidity_flagNo
redemption_pathNo
concentration_riskNo
not_investment_adviceNo
structural_dependenciesNo
premium_discount_exposureNo
issuer_credit_exposure_distinctNo
redemption_reachable_for_non_apNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds real value beyond them: deterministic execution, transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, and the export of an AP2 artifact with execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The sentence about compute modes is useful and front-loaded reasonably, but the tail is cluttered with an artifact URL and an opaque FV-status hash plus a disclaimer about snapshot reproducibility that consume space without helping tool selection or invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and annotations cover the safety profile. Still, for a tool whose payload is a free-form policy_parameters object delegating field names to an external manifest, the description leaves the actual stress-test semantics and required input shape under-described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description largely repeats the compute-mode explanation already present in the schema and adds only marginal framing, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with the title phrase 'AP Concentration + Redemption-Path Stress' and labels the tool as an 'OpenChainGraph compute node (collateral_mandate)', which gives a functional category. However, it never explains what the stress computation actually does and offers no differentiation from siblings like compute_stress_test_scenarios or run_liquidity_stress_test, so the core purpose beyond the title restatement is vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no mention of alternatives among the many stress and collateral siblings. The compute-mode discussion describes execution behavior, not selection criteria, so an agent still has to infer when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_tool_ideaSuggest a new tool, node, or workflowA
Read-onlyIdempotent
Inspect

Builds a prefilled GitHub Issue-Forms URL for proposing a new AINumbers fintech tool, OpenChainGraph compute node, or verifiable workflow. Returns the URL only -- it never posts to GitHub on the caller's behalf. Companion to the site's mailto suggestion form (suggest.html); this is the agent-callable path.

ParametersJSON Schema
NameRequiredDescriptionDefault
whoNoThe persona or buyer who would use this (e.g. "a compliance officer at a CASP").
kindNoWhat kind of suggestion this is (default "New tool").
titleNoShort issue title (the "[Suggestion] " prefix is added automatically).
domainNoThe regulation or standard it serves (e.g. "MiCA", "ISO 20022", "EMIR Refit").
why_nowNoThe driver, deadline, or demand behind the suggestion.
computesYesWhat the tool would compute or verify (e.g. "validates a CBAM precursor emissions declaration against Annex III default values"). Required by the issue form.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, providing strong behavioral context. The description adds value by explicitly confirming it never posts on behalf of the caller, reinforcing the read-only, non-destructive nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff: first sentence defines the action and resource, second clarifies output and context. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters and no output schema, the description explains the output (URL) and the tool's scope (no posting). It could elaborate on URL usage, but the provided info is sufficient for an agent to understand the tool's role.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description need not elaborate on parameters. It adds minimal extra meaning beyond mentioning the URL is prefilled. Baseline of 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it builds a prefilled GitHub Issue-Forms URL for proposing new tools, nodes, or workflows. The verb 'builds' and resource 'URL' are specific, and the description distinguishes it from the mailto suggestion form, ensuring no ambiguity among sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states what the tool does not do ('never posts to GitHub') and identifies itself as the 'agent-callable path' compared to the mailto form. However, it does not explicitly list when to use this tool over other siblings, though the unique purpose makes this clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suite_howtoAINumbers suite how-to: workflow recipesA
Read-onlyIdempotent
Inspect

How to chain AINumbers tools into audited workflows: call with NO recipe_id for the compact recipe index, or with one recipe_id for that workflow's full step-by-step recipe. Every recipe carries the suite conventions end to end: Policy Mandate exports, execution_hash verification, and receipts.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipe_idNoA recipe id from the no-arg index (e.g. "aml-programme"). Omit for the compact index; pass exactly ONE id per call.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral detail beyond annotations: it specifies that no recipe_id returns a compact index, one recipe_id returns a full step-by-step recipe, and each recipe carries suite conventions like Policy Mandate exports, execution_hash verification, and receipts. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. The invocation modes are front-loaded, and the extra convention detail is concise and relevant. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple one-optional-parameter read-only tool with no output schema. The description sufficiently explains what the agent gets in both call modes and what recipes contain, which is enough for correct invocation and use. The only minor gap, naming alternative meta-tools, is already covered under usage guidelines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the recipe_id parameter is already documented with an example and the omit-or-pass-exactly-one constraint. The tool description largely restates this behavior without adding deeper parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose: chaining AINumbers tools into audited workflows. It clearly distinguishes the two invocation modes (no recipe_id for the compact index, one recipe_id for the full recipe), which separates this how-to tool from sibling tools like list_ainumbers_tools or find_tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit context on when to use the tool and how to invoke it, including the no-arg versus one-id behavior. However, it does not explicitly name alternatives or state when not to use this tool in favor of similar meta-tools such as list_ainumbers_tools or find_tool, so it lacks explicit exclusionary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sweep_docket_deadlinesDocket Deadline SweepC
Read-onlyIdempotent
Inspect

Docket Deadline Sweep: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-588-docket-deadline-sweep.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
recordsNo
decisionNo
conflictsNo
roll_ruleNo
as_of_dateNo
scope_noteNo
clause_noteNo
record_countNo
sweep_summaryNo
rejected_inputsNo
not_legal_advice_noteNo
due_soon_days_thresholdNo
due_soon_days_threshold_is_defaultNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnly/idempotent/non-destructive, and the description adds genuinely useful context beyond them: transient processing with no storage/logging/retention, the browser-delegation behavior, and export of an AP2 artifact carrying execution_hash. It stops short of describing what the computation itself does, but the operational traits disclosed are substantive and consistent with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is structured and the platform details earn some of their space, but the lead sentence is wasted on restating the tool name, and the trailing FV-status snapshot sentence with its long hash is verbose relative to its decision value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a compliance compute node with a vague name the description omits the single most important thing: what the deadline sweep computes and what inputs policy_parameters expects. The compute/provenance boilerplate does not fill that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented, and the description largely repeats the compute-mode semantics already in the schema. It adds the export/chain-provenance framing for parent_hashes, but the remaining parameters are carried by the schema, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence merely restates the tool name and attaches a category label ('OpenChainGraph compute node (compliance_control)'). It never explains what a docket-deadline sweep actually computes or what domain obligation it serves, so the agent cannot distinguish its purpose from siblings like compute_pqc_deadline_ladder or classify_dora_ict_incident_and_clock_deadlines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative-tool guidance is present. The only directive is an input-handling constraint ('Use synthetic or anonymised inputs only'), which governs inputs, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sweep_fedwire_addressesFedwire Payment-File Address SweepC
Read-onlyIdempotent
Inspect

Fedwire Payment-File Address Sweep: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-349-fedwire-structured-address-linter. Open at: https://ainumbers.co/chaingraph/art-350-fedwire-address-sweep.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
risk_scoreNo
table_sourceNo
table_versionNo
disambiguationNo
regulatory_basisNo
rejection_risk_reportNo
fedwire_chips_deadlineNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that: transient processing with no storage/logging/retention, the 'synthetic or anonymised inputs only' constraint, the AP2 artifact + execution_hash export for chain provenance, and the browser-delegation behavior for gpu:true nodes. It stops short of describing failure modes or what the policy_parameters decision function does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence front-loads the tool name and node type, and the provenance/upstream-consumption facts are useful. But the compute-mode paragraph largely duplicates the schema's 'compute' description at 100% coverage, and the trailing FV-status URL/hash sentence is unusually long and mostly raw metadata. Sizeable bloat relative to the actual operational guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compute node that is supposed to perform a Fedwire address sweep, the description covers the execution machinery (compute modes, privacy, artifact export, upstream lineage) but never states what the sweep evaluates or what a caller should put in policy_parameters — field names are pushed to an unavailable manifest. With an output schema present, return values need not be explained, but the functional input contract is a genuine gap for a 4-parameter nested-object tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode semantics that the schema already documents, and for policy_parameters it explicitly defers field names to an external manifest rather than adding meaning. No additional parameter semantics are contributed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title pair identifies a specific verb and resource ('Fedwire Payment-File Address Sweep'), and the description notes it consumes artifacts from art-349-fedwire-structured-address-linter, which hints at the domain. However, the body of the description never explains what the sweep actually computes — it is dominated by generic OpenChainGraph compute-node boilerplate. An agent can guess the domain from the title but not the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute-mode paragraph explains when to use 'auto' vs 'browser' vs 'server', which is a narrow usage axis (and is already covered in the schema). There is no guidance on when to call this tool versus the closely related lint_fedwire_structured_address or other Fedwire/payment siblings, and no statement of prerequisites beyond the generic upstream artifact reference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_asc280_reportable_segmentASC 280 Reportable Segment TesterB
Read-onlyIdempotent
Inspect

ASC 280 Reportable Segment Tester: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-633-asc280-reportable-segment-tester.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
testsNo
oracleNo
tests_metNo
threshold_pctNo
rounding_stepsNo
coverage_75_pctNo
comparison_basisNo
regulatory_basisNo
aggregation_criteriaNo
tests_not_assessableNo
coverage_threshold_pctNo
majority_of_criteria_metNo
reportable_segment_countNo
management_judgment_requiredNo
aggregation_criteria_met_countNo
unanswered_aggregation_criteriaNo
aggregation_criteria_answered_countNo
practical_limit_consideration_advisedNo
is_reportable_by_quantitative_thresholdNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds genuinely new context: inputs are processed transiently and not stored/logged, compute:'browser' returns a delegation URL rather than a result, gpu:true always delegates, and the output is an AP2 artifact carrying execution_hash for chaining. These are non-obvious execution semantics that annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is padded with infrastructure boilerplate ('Deterministic OpenChainGraph compute node'), a raw URL, and a long FV-status receipt path with a caveat sentence. Roughly half the text serves platform provenance rather than helping an agent invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the privacy/compute behavior is covered. The critical gap is that the actual decision inputs live behind an opaque policy_parameters object whose fields are only in an external 'manifest', so an agent cannot tell what data the ASC 280 test requires.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are already documented in the schema, and the description only restates the compute-mode semantics verbatim. parent_hashes, parent_tool_ids and policy_parameters receive no additional description-level clarification; baseline 3 applies when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify the subject as an ASC 280 reportable-segment test, but the description itself never explains what the test does (e.g. the 10% quantitative thresholds or the 75% aggregation test). Instead it recites platform-level boilerplate ('OpenChainGraph compute node', 'compliance_mandate'), so the reader gets the category but not the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives usable guidance on compute mode selection ('auto' vs 'browser', gpu:true always delegates) and a privacy constraint ('use synthetic or anonymised inputs only'). It offers nothing on when to choose this tool over the many sibling assess_*/test_* compliance tools, nor on prerequisites for the ASC 280 determination itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_bifsg_bias_thresholdsBIFSG Insurance Proxy Bias Threshold Test (Colorado SB 21-169)B
Read-onlyIdempotent
Inspect

BIFSG Insurance Proxy Bias Threshold Test (Colorado SB 21-169): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-240-assess-naic-ais-program-readiness. Open at: https://ainumbers.co/chaingraph/art-239-test-bifsg-bias-thresholds.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
do_nowNo
p_valueNo
pii_noteNo
model_typeNo
test_resultNo
premium_flagNo
table_sourceNo
test_contextNo
bias_detectedNo
table_versionNo
attestation_yearNo
regulatory_basisNo
p_value_thresholdNo
anchor_instructionNo
marginal_effect_pctNo
p_value_significantNo
attestation_deadlineNo
marginal_effect_flagNo
remediation_requiredNo
premium_threshold_pctNo
marginal_effect_threshold_ppNo
premium_per_1000_above_avg_pctNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the bar is lower. The description goes further by disclosing transient processing with no storage/logging/retention, deterministic execution, server-vs-browser compute routing, and an exported AP2 artifact carrying an execution_hash. That is meaningful behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is padded with shared OpenChainGraph boilerplate, a redundant 'Deterministic ... compute node' restatement, an inline artifact URL, and a long run-on FV-status sentence ending in a URL and hash. The actually tool-specific content (bias threshold test) occupies almost none of the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and compute/chaining behavior is covered. But `policy_parameters` defers field names to an external manifest ('See the tool's manifest for field names'), leaving the actual decision inputs undocumented — a real gap for a four-parameter compliance test.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema itself explains compute mode, parent_hashes/parent_tool_ids chaining, and policy_parameters. The description duplicates the compute-mode semantics without adding new parameter detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title identifies a specific test (BIFSG insurance proxy bias thresholds under Colorado SB 21-169), but the description body only restates that the tool is a 'Deterministic OpenChainGraph compute node (compliance_mandate)' without explaining what the threshold test actually computes or decides. Against dozens of sibling `test_*` tools (test_hoepa_high_cost, test_nav_error_materiality, etc.) there is no differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states that inputs must be synthetic/anonymised and that the output feeds art-240-assess-naic-ais-program-readiness, which implies a chaining context. However, it never says when to run this test versus the other readiness/classification tools, nor what condition or threshold triggers its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_hedge_effectivenessHedge Effectiveness TestC
Read-onlyIdempotent
Inspect

Hedge Effectiveness Test: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-263-score-cash-forecast-accuracy. Open at: https://ainumbers.co/chaingraph/art-261-test-hedge-effectiveness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ols_betaNo
pii_noteNo
ols_alphaNo
r_squaredNo
hedge_ratioNo
is_effectiveNo
table_sourceNo
table_versionNo
anchor_surfaceNo
method_appliedNo
not_legal_adviceNo
regulatory_basisNo
observation_countNo
asc815_80_125_bandNo
dollar_offset_ratioNo
effectiveness_reasonNo
regression_effectiveNo
effectiveness_standardNo
dollar_offset_effectiveNo
cumulative_hedged_changeNo
ifrs9_hedge_ratio_passesNo
cumulative_hedging_changeNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, and the description adds real context on top: inputs are processed transiently and never stored or logged, compute:'browser' returns a delegation URL, gpu:true nodes always delegate, and the tool exports an AP2 artifact with execution_hash. The FV-status receipt is described as an offline-verifiable snapshot. That is meaningful disclosure beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense wall of boilerplate with a repeated 'Deterministic OpenChainGraph compute node' phrase, an inline URL, and a long FV-status hash, none of which help an agent select or call the tool. The genuinely useful privacy and compute-mode facts are buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be described, and the privacy/compute/provenance behavior is covered. However, for a high-complexity node with nested policy_parameters, the description never explains what the decision function computes or what fields the manifest expects, leaving the core semantic gap unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes the compute-mode behavior and alludes to chaining/provenance but adds no field-level detail the schema does not already carry, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels the tool 'Hedge Effectiveness Test: OpenChainGraph compute node (compliance_mandate)', which identifies the resource but never explains what the hedge-effectiveness computation actually does (e.g. what relationship it tests, what method it applies). Most of the text is infrastructure boilerplate rather than purpose, so an agent learns little beyond the name and title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to prefer this tool over siblings such as test_nav_error_materiality or the various score_* tools. The only directive is 'Use synthetic or anonymised inputs only', which is a data-handling constraint, and the 'Output feeds: art-263-...' note hints at chaining but not when to invoke the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_hoepa_high_costHOEPA High-Cost Mortgage Trigger TestC
Read-onlyIdempotent
Inspect

HOEPA High-Cost Mortgage Trigger Test: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-220-reg-z-threshold-lookup. Open at: https://ainumbers.co/chaingraph/art-234-test-hoepa-high-cost.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
yearNo
apr_pctNo
apor_pctNo
consumesNo
lien_typeNo
fr_citationNo
loan_amountNo
is_high_costNo
pp_pct_limitNo
table_versionNo
apr_spread_pctNo
triggers_firedNo
apr_trigger_metNo
points_and_feesNo
regulatory_basisNo
apr_threshold_pctNo
is_small_dwellingNo
points_fees_floorNo
points_fees_limitNo
apr_threshold_basisNo
points_fees_limit_pctNo
has_prepayment_penaltyNo
pp_period_limit_monthsNo
prepayment_penalty_pctNo
points_fees_trigger_metNo
prepayment_penalty_trigger_metNo
prepayment_penalty_period_monthsNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real context beyond them: deterministic execution, the auto/server/browser compute delegation behavior, transient non-retained processing, an AP2 artifact export carrying execution_hash, and an FV-status receipt that is a snapshot rather than a subscription. No contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentences redundantly restate the title and node type, and the compute-mode/FV-status boilerplate is platform-wide padding that consumes most of the text without describing the tool itself. It is organized, but a large share of the sentences do not earn their place for this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and provenance/privacy/compute behavior is well covered. However, for a compliance decision node the description never states what the high-cost trigger evaluates, the thresholds involved, or which inputs drive the verdict — the core substance an agent would need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description adds no syntax or format detail for compute, parent_hashes/parent_tool_ids, or policy_parameters. The most consequential gap is that policy_parameters is an open object whose field names are deferred to an external manifest, so the agent still cannot tell which HOEPA decision inputs are required — but per the high-coverage baseline this lands at 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title twice ('HOEPA High-Cost Mortgage Trigger Test: OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and never explains what the test actually determines — i.e. under what rule a loan is flagged as high-cost, or what the node outputs. 'Test' is a vague verb, and nothing here distinguishes it from nearby siblings such as check_qm_points_and_fees or lookup_reg_z_thresholds beyond naming the upstream artifact it consumes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use/when-not-to-use statement. The only routing signal is the mention that it consumes upstream artifacts from art-220-reg-z-threshold-lookup, which weakly implies a prerequisite ordering, but the agent is never told when this test applies versus other compliance checks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_hpml_escrowHPML Definition and Escrow Requirement TestB
Read-onlyIdempotent
Inspect

HPML Definition and Escrow Requirement Test: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-220-reg-z-threshold-lookup. Open at: https://ainumbers.co/chaingraph/art-235-test-hpml-escrow.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses several traits the agent could not infer: inputs are processed transiently and not stored/logged/retained, synthetic/anonymised inputs only, server-side vs browser delegation behavior, and that the call exports an AP2 artifact with execution_hash plus consumes an upstream artifact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with provenance/infrastructure boilerplate, and 'Deterministic OpenChainGraph compute node' duplicates the preceding sentence. Sentences carry information, but the opening is repetitive and the functional intent is buried rather than stated first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param node with no output schema and a nested policy_parameters object, the description covers execution modes, data-handling, upstream provenance, and the exported artifact, which is reasonably complete. It stops short of explaining the decision output or the field names expected inside policy_parameters, but the essentials for correct invocation are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute modes, parent_hashes/parent_tool_ids chaining, and the opaque policy_parameters object. The description largely repeats the compute-mode semantics and adds nothing about the chaining parameters or where to find the decision-function field names, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('HPML Definition and Escrow Requirement Test') and labels it a 'compliance_mandate' compute node, but never explains what the tool actually computes (e.g., determining whether a loan is high-priced and requires escrow). Most of the text describes compute plumbing rather than the resource or decision, and it does nothing to distinguish itself from the many sibling compliance test nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use/when-not guidance and no routing to alternatives. The only usage-like language concerns compute modes (auto/server/browser), which is parameter behavior rather than task selection, so an agent gets no help deciding when to invoke this over a sibling test.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_nav_error_materialityTest NAV-Error MaterialityB
Read-onlyIdempotent
Inspect

Test NAV-Error Materiality: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-373-recompute-fund-nav. Open at: https://ainumbers.co/chaingraph/art-374-test-nav-error-materiality.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
fenceNo
fund_idNo
not_provenNo
valuation_dateNo
affected_periodNo
declared_policyNo
estimated_impactNo
structural_errorNo
shares_outstandingNo
industry_conventionNo
materiality_verdictNo
regulatory_frameworkNo
reprocessing_need_indicatedNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses that inputs are processed transiently and not stored, logged, or retained, that gpu:true nodes always delegate to the browser, and that the tool exports an AP2 artifact carrying execution_hash. That is meaningful behavioral context, though it does not cover failure modes or delegation-URL lifecycle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The name and mode semantics are front-loaded, but the text repeats 'Deterministic OpenChainGraph compute node' and spends a long trailing clause on a raw URL and status hash plus a self-referential note about the receipt verifying offline. Some of that is signal, some is noise for a selection decision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and provenance/artifact chaining is covered. Still, for a compute node with a nested policy_parameters object the description omits what the decision function evaluates and what inputs are expected, deferring to an external manifest an agent may not have.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation largely duplicates the schema text and explicitly defers policy_parameters field names to 'the tool's manifest', adding little beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name 'Test NAV-Error Materiality' is not explained in domain terms; the description instead classifies the tool as an 'OpenChainGraph compute node (attestation_mandate)'. An agent learns the platform category and artifact mechanics but never what NAV-error materiality testing actually computes or decides, so the purpose remains vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one explicit usage rule ('Use synthetic or anonymised inputs only') and implies ordering by naming the upstream artifact it consumes (art-373-recompute-fund-nav) and the compute modes. However, it never says when to prefer this over siblings such as compile_nav_error_evidence_pack or recompute_fund_nav.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_reg_w_affiliate_transactionsReg W Affiliate Transaction TesterC
Read-onlyIdempotent
Inspect

Reg W Affiliate Transaction Tester: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-536-reg-w-affiliate-transaction-tester.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasonNo
decisionNo
aggregate_testNo
policy_vintageNo
execution_stateNo
collateral_testsNo
single_affiliate_testsNo
market_terms_declarationsNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, closed-world, non-destructive behavior, yet the description adds real context: deterministic execution, the compute:auto/server/browser routing rules, transient non-stored processing, and an AP2 artifact with execution_hash for provenance. Only the FV-status receipt sentence is over-explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute/privacy/provenance sentences earn their place, but the opening restates the title and the closing FV-status paragraph is a long hash-URL blob with marginal value. The actual purpose of the tool is never front-loaded because it is never stated at all.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a domain-specific compliance test with an output schema and 100% schema coverage, the description still omits what the test evaluates and what policy_parameters fields mean (deferred to an unlinked manifest). An agent knows how to route compute but not what regulator-inputs to supply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes, parent_tool_ids and policy_parameters semantics are fully documented in the schema; the description adds nothing about them. Baseline 3 is appropriate, though the policy_parameters field itself is left to 'see the manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what a Reg W affiliate transaction test actually computes; the only domain signal is the name/title restated as 'OpenChainGraph compute node (compliance_control)'. Everything else is generic chain-graph compute boilerplate that would apply to any of the hundreds of sibling nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no reference to any sibling such as the many other compliance-control testers. The only prescriptive instruction is 'Use synthetic or anonymised inputs only', which is a data-handling constraint rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_fatca_crs_ro_remediation_closureFATCA/CRS RO Remediation Closure TrackerC
Read-onlyIdempotent
Inspect

FATCA/CRS RO Remediation Closure Tracker: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-491-ro-remediation-closure.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
cutoff_atNo
open_countNo
closed_countNo
evaluated_atNo
overdue_countNo
determinationsNo
readiness_verdictNo
notification_countNo
certification_periodNo
closure_coverage_pctNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description does add real behavioral context beyond that: server-vs-browser compute semantics, transient/no-retention processing, synthetic-inputs-only handling, and that it exports an AP2 artifact with execution_hash for provenance. These are useful but largely generic template facts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dominated by boilerplate, URLs, and a long hex status path, and it buries the actual function behind infrastructure prose. It is not front-loaded on what the tool does and contains repeated phrasing ('Deterministic OpenChainGraph compute node').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and compute-mode behavior is covered. However, for a domain-specific FATCA/CRS remediation-closure computation with a free-form policy_parameters object, the description omits the substantive semantics an agent needs to trust it is the right tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with 4 parameters, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters (including field-level enum semantics). The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title ('FATCA/CRS RO Remediation Closure Tracker') and then describes infrastructure ('OpenChainGraph compute node (attestation_mandate)') rather than stating what the tool actually computes. It never explains what 'tracking remediation closure' entails or what the decision function decides, leaving the purpose at the level of a name plus a node class.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives, despite closely related siblings like register_mra_remediation_closure, check_fatca_crs_submission_conformance, and classify_carf_reportable. The only conditional language concerns compute mode selection, not task selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_globe_transition_deferred_taxGloBE Article 9.1 Transition Deferred Tax TrackerB
Read-onlyIdempotent
Inspect

GloBE Article 9.1 Transition Deferred Tax Tracker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-636-globe-transition-deferred-tax-tracker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
itemsNo
error_codeNo
item_countNo
cutoff_dateNo
items_cappedNo
minimum_rateNo
items_excludedNo
items_in_errorNo
items_upliftedNo
rounding_stepsNo
canonical_orderNo
exclusion_rulesNo
constants_versionNo
total_is_completeNo
items_manual_reviewNo
transition_year_start_dateNo
jurisdictional_roll_forward_totalNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive behavior, but the description adds meaningfully: server-side vs browser delegation rules, transient non-retention of inputs, synthetic-input guidance, and an exported AP2 artifact carrying execution_hash for provenance. These are real behavioral traits beyond the annotation set, though partly generic node boilerplate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with the title, but the text spends considerable space on compute-binding boilerplate and a long FV-status/URL/hash sentence. Most sentences are relevant, but density is diluted by internal infrastructure phrasing that an agent does not need for selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description covers execution mode, privacy, and provenance adequately. However, the opaque policy_parameters object (nested, open-ended) is left entirely to an external manifest, leaving the core decision inputs undefined.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely echoes the compute-mode semantics already in the schema and explicitly defers policy_parameters field names to the manifest, adding little over structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first line name a specific verb and regulatory resource (track GloBE Article 9.1 transition deferred tax), but the description body itself never explains what the tracker computes or produces beyond restating the title. It gives no differentiation from GloBE siblings such as compose_globe_gir, compute_globe_jurisdictional_etr, or evaluate_globe_safe_harbour_tests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative-selection guidance is offered. The only conditional text concerns compute routing (auto/server/browser), which governs execution mechanics rather than whether an agent should pick this tool over a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_ifrs17_loss_component_rollforwardIFRS 17 Loss Component Roll-Forward TrackerB
Read-onlyIdempotent
Inspect

IFRS 17 Loss Component Roll-Forward Tracker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-178-ifrs17-csm-rollforward-validator. Open at: https://ainumbers.co/chaingraph/art-448-ifrs17-loss-component-tracker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lc_validNo
other_adjNo
closing_lcNo
opening_lcNo
pre_releaseNo
reversal_lcNo
additional_lcNo
fully_reversedNo
release_to_pnlNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses genuinely useful behavior: transient processing with no storage or logging, synthetic-inputs-only constraint, browser delegation semantics for gpu:true nodes, and an AP2 artifact with execution_hash for provenance. This goes well past what the annotations cover, though the compute-mode text largely restates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, which is good, but the body is padded with generic OpenChainGraph boilerplate recycled across every compute node plus a long FV-status hash/URL sentence. Several sentences earn their place; the boilerplate dilutes the tool-specific content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and full annotations exist, so return values and safety need not be described. The gaps are tool-specific: what the roll-forward computes, what fields policy_parameters expects, and how it relates to the upstream validator artifact it consumes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds only the chaining/provenance framing; it does not explain what belongs inside policy_parameters for this node, so it stays at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and opening line state a specific verb and resource (track the IFRS 17 loss component roll-forward), and the mention of consuming art-178-ifrs17-csm-rollforward-validator locates it in a pipeline. However, it never says what the roll-forward actually computes and does not distinguish itself from sibling IFRS 17 tools such as validate_ifrs17_csm_rollforward or check_ifrs17_risk_adjustment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only 'when' guidance is about the compute mode enum (auto/server/browser), which is mechanical. There is no statement of when to reach for this tracker versus the adjacent IFRS 17 validators, no prerequisites, and no exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_a2a_agent_cardA2A Agent Card Validator & Extension CheckerA
Read-onlyIdempotent
Inspect

Validate an A2A agent-card.json against the v1.0 shape, check signatures, and confirm extension declarations. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
findingsNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by explaining the tool runs client-side, renders a widget, involves zero PII, and zero network. This complements the readOnlyHint and idempotentHint annotations. However, it could mention error handling or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences: first stating the primary validation function, second explaining the rendering and execution context. No unnecessary words; each sentence serves a clear purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main function, input mechanism, and privacy aspects. However, it does not describe the output schema, which is present in structured metadata. For a validation tool, explaining the return value (e.g., validity status or errors) would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'inputs' is described in the schema with 100% coverage. The description adds context by explaining the AIN Bridge prefill and widget rendering, which clarifies how the parameter is used. The description does not conflict with schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool validates an A2A agent-card.json against v1.0 shape, checks signatures, and confirms extension declarations. This clearly distinguishes it from siblings like 'verify_a2a_agent_card' and 'validate_a2a_trust_chain'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives. It mentions validation and signature checking but does not contrast with similar tools like 'verify_a2a_agent_card' or indicate prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_a2a_trust_chainA2A Agent-Card Trust-Chain ValidatorC
Read-onlyIdempotent
Inspect

A2A Agent-Card Trust-Chain Validator: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2026-08 (A2A at Linux Foundation (150+ orgs); EU AI Act Aug 2026 pushes agent KYA toward requirement.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-04-agent-identity-attestation-checker, art-02-agent-spend-policy-simulator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-32-a2a-agent-card-trust-chain-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
fail_countNo
pass_countNo
warn_countNo
card_schema_okNo
no_expired_linksNo
no_scope_escalationNo
trust_determinationNo
signature_block_presentNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnly/idempotent/non-destructive, the description still adds real value: transient processing with no storage or logging, the auto/server/browser execution split and browser delegation URL, permanent gpu:true delegation, and that an AP2 artifact with execution_hash is exported for chain provenance. That is more behavior than the structured fields convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The front half is marketing and regulatory framing (Linux Foundation, EU AI Act, org counts, a hosted URL and a long FV-status hash path) that never helps an agent invoke the tool. The genuinely useful facts — compute modes, no retention, AP2 export — are buried mid-paragraph instead of leading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and annotations cover safety. However the description never says what constitutes a valid trust chain, what inputs are inspected, or how the downstream art-04/art-02/ptg-01 consumers should use the result — gaps for a 4-parameter, nested-object validation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description largely restates the compute-mode semantics that already live in the schema and adds nothing about chaining order or policy_parameters field names. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The only statement of the actual function is the title repeated verbatim ('A2A Agent-Card Trust-Chain Validator'), plus a passing 'Exports an AP2 artifact with execution_hash for chain provenance.' The bulk of the text describes compute binding, regulatory deadlines and hosting, so an agent learns the plumbing before the purpose. It does not distinguish itself from close siblings such as validate_a2a_agent_card, verify_a2a_agent_card, or validate_ap2_mandate_chain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is a rule about compute modes and a caution to use synthetic inputs, but nothing stating when this validator applies versus the many adjacent A2A/AP2 validators. The 'Regulatory deadline: 2026-08' line hints at a trigger but is not an actionable use condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_a2a_x402_mandateA2A x402-Extension Mandate ValidatorA
Read-onlyIdempotent
Inspect

A2A x402-Extension Mandate Validator: OpenChainGraph compute node (settlement_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-03-x402-settlement-modeler. Output feeds: art-30-agent-commerce-conformance-validator, cry-05-agent-action-audit-trail-aggregator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-31-a2a-x402-extension-mandate-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
verdictNo
fail_countNo
pass_countNo
warn_countNo
extension_declaredNo
settlement_rail_boundNo
payment_authority_scope_presentNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds genuinely useful behavior: transient processing with no storage, logging, or retention; server-vs-browser delegation semantics for gpu:false vs gpu:true nodes; and emission of an AP2 artifact carrying execution_hash. The FV-status receipt note also clarifies that provenance is a verifiable offline snapshot. Some of the compute-mode content duplicates the schema, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, but the body is packed with infrastructure trivia: a full 64-hex FV-status path, an artifact ID list, an HTML URL, and a sentence about the receipt verifying offline regardless of fetch. Several of these do not help an agent decide or call the tool, so the description is heavier than needed for its payload.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be spelled out, and the annotations cover the safety profile. The description still supplies the missing operational context an agent needs: compute-mode behavior, data non-retention, and the artifact/chain provenance contract. Only the absence of explicit sibling-selection guidance leaves a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, and the description largely restates the compute-mode semantics verbatim. Its only added parameter-level value is the chain linkage ('consumes upstream artifacts from art-03'), with policy_parameters still deferred to 'the tool's manifest'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The definition names a specific verb and resource: a validator for A2A x402-extension mandates, further pinned as the OpenChainGraph settlement_mandate compute node. It also positions the node in a chain (consumes art-03-x402-settlement-modeler, feeds art-30 conformance validator), which helps distinguish it from other x402 validators. It does not explicitly contrast itself with close siblings such as validate_ap2_mandate_chain or verify_kya_x402_scope, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through chain positioning and the compute-mode rules; there is no explicit statement of when to pick this tool over the many sibling mandate/x402 validators. The 'use synthetic or anonymised inputs only' line is a real constraint but is a data-handling caveat rather than a use-case discriminator. Minimum viable routing guidance, no alternatives named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_acp_checkoutACP Checkout Conformance ValidatorA
Read-onlyIdempotent
Inspect

ACP Checkout Conformance Validator: OpenChainGraph compute node (payment_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-01-ap2-mandate-chain-validator. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-12-acp-checkout-conformance-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
currencyNo
fail_countNo
pass_countNo
warn_countNo
merchant_idNo
overall_statusNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description still adds real behavior: deterministic compute, transient processing with no storage/logging/retention, server-vs-browser execution semantics, and an AP2 export with execution_hash for provenance. This is meaningful context beyond the annotations, though it is not organized around agent-relevant behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the tool name and purpose, but roughly half the text is provenance boilerplate (the artifact URL and the long FV-status receipt path/hash) that does not help an agent invoke the tool correctly. The compute-mode explanation is also partly redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers execution modes, data-retention policy, and chain provenance adequately for a validator of this complexity. Missing only explicit invocation guidance relative to sibling validators.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description largely restates the compute-mode logic already present in the schema and offers no additional syntax or format meaning for the parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("ACP Checkout Conformance Validator" on a payment_mandate node) and situates it in a pipeline with named upstream/downstream artifacts, so an agent can place it among the many validate_* siblings. However, the core purpose statement is buried under infrastructure metadata and does not directly differentiate it from close siblings like validate_ap2_mandate_chain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through pipeline position ("Consumes upstream artifacts from... Output feeds...") and the "Use synthetic or anonymised inputs only" constraint. There is no explicit when-to-use vs when-to-prefer-an-alternative guidance, which matters given the dense cluster of validate_/lint_ siblings for ACP/UCP checkout payloads.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_adverse_action_noticeValidate Adverse Action NoticeB
Read-onlyIdempotent
Inspect

Validate Adverse Action Notice: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-228-build-adverse-action-notice. Open at: https://ainumbers.co/chaingraph/art-227-validate-adverse-action-notice.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
warningsNo
compliantNo
violationsNo
action_takenNo
reason_countNo
table_sourceNo
fcra_requiredNo
table_versionNo
warning_countNo
fcra_violationsNo
violation_countNo
compliance_scoreNo
regulatory_basisNo
credit_score_usedNo
reason_count_validNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/not-open-world, but the description adds substantial context beyond them: deterministic execution, server-vs-browser delegation behavior, the fact that inputs are processed transiently and not stored/logged/retained, and that it exports an AP2 artifact with execution_hash for provenance. This meaningfully extends the safety picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense block that front-loads infrastructure boilerplate (compute binding, FV-status URL, snapshot caveat) over the tool's actual purpose. Much of the text is family-wide boilerplate that could be trimmed, though the information is not outright redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the infra/provenance behavior is well covered. The gap is that for a compliance validation node, the description never describes what the validation actually decides, which leaves a meaningful content hole for an agent reasoning about results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters, including the compute enum. The description restates the compute-mode semantics and adds the detail that browser mode returns a delegation URL, but contributes little beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as a compute node that validates adverse action notices and names the upstream it consumes (art-228-build-adverse-action-notice), which partially distinguishes it from the sibling build_adverse_action_notice. However, it never says what the validation checks or what makes a notice valid, so the purpose is only loosely conveyed beyond the name/title restatement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one usage constraint ('Use synthetic or anonymised inputs only') and describes compute-mode selection, but offers no guidance on when to use this validator versus the builder or other validation tools. There is no when-to-use / when-not-to-use routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_agent_audit_trailAgent Audit Trail Conformance Validator (IETF AAT)B
Read-onlyIdempotent
Inspect

Agent Audit Trail Conformance Validator (IETF AAT): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-236-build-ai-decision-log-record. Open at: https://ainumbers.co/chaingraph/art-237-validate-agent-audit-trail.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
outcomeNo
record_idNo
trust_levelNo
action_classNo
action_detailNo
ecdsa_presentNo
table_versionNo
agent_identityNo
alignment_noteNo
chain_positionNo
regulatory_basisNo
validation_errorsNo
conformance_resultNo
sha256_prev_recordNo
validation_warningsNo
aat_completeness_scoreNo
sha256_chain_format_validNo
aat_required_fields_presentNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, closed-world, so the bar is lower, and the description still adds genuine behavioral context: inputs are processed transiently and not stored/logged/retained, synthetic inputs are advised, and an AP2 artifact with execution_hash is exported. The compute-mode and browser-delegation notes further explain non-obvious execution behavior. Only missing element is what a failing/passing validation result implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense run-on paragraph front-loaded with the title and purpose, but a large fraction of the tokens are repetitive infrastructure boilerplate ('Deterministic OpenChainGraph compute node', compute binding restatement) that crowds out the substantive validation content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations carry the safety profile. But for a conformance validator the description never states what constitutes conformance or which audit-trail fields are required, and it punts parameter names to an unseen manifest. Adequate but with clear gaps for an agent deciding whether and how to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode text largely restates the schema's own compute description and adds no new per-parameter semantics; policy_parameters is deferred to an external manifest, which the description does not resolve. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/first sentence identifies a specific resource (agent audit trail) and action (conformance validation against IETF AAT), and later text hints at chaining via AP2 artifacts. However, the bulk of the description is OpenChainGraph infrastructure boilerplate (compute binding, Workers, gpu:true/false) rather than what the validation actually checks, and it never distinguishes itself from close siblings like validate_audit_trail_completeness or validate_input_attestations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use / when-not-to-use guidance and no named alternative among the many validate_* siblings. The only usable routing signal is the prerequisite note that it 'Consumes upstream artifacts from: art-236-build-ai-decision-log-record', which implies ordering but not selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_agent_commerce_conformanceAgent Commerce Cross-Protocol Conformance ValidatorA
Read-onlyIdempotent
Inspect

Agent Commerce Cross-Protocol Conformance Validator: OpenChainGraph compute node (payment_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-01-ap2-mandate-chain-validator, art-12-acp-checkout-conformance-validator, art-03-x402-settlement-modeler. Output feeds: cry-05-agent-action-audit-trail-aggregator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-30-agent-commerce-conformance-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
fail_countNo
pass_countNo
warn_countNo
overall_statusNo
protocols_validatedNo

TDQS

A3.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already covering read-only, idempotent, and non-destructive behavior, the description adds substantial operational detail: compute:auto/server/browser routing, Cloudflare Workers execution, browser delegation URLs, transient non-retention, and synthetic-input requirements. It also discloses upstream/downstream provenance chaining and the exported AP2 artifact with execution_hash. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core technical details appear after the title, but there is redundancy ('OpenChainGraph compute node' is stated twice) and extraneous material: an external URL and a long FV-status hash/snapshot explanation do not help an agent select or invoke the tool. Most sentences still carry operational context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter compute node with a rich output schema and annotations, the description supplies the missing operational context: compute routing, data handling, and provenance chaining. It remains somewhat vague about the actual conformance logic, but return values are covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parent_hashes, parent_tool_ids, and policy_parameters are already documented by the schema. The description adds some meaning for the compute enum, but largely repeats schema semantics and does not clarify what fields policy_parameters should contain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name establish a 'validate' verb on agent-commerce conformance, and the body identifies this as a deterministic OpenChainGraph compute node that exports an AP2 artifact. However, it never specifies which protocols or conformance rules are checked, and it does not differentiate this tool from the many sibling validators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides chain context ('consumes upstream artifacts ... output feeds ...') and a synthetic/anonymised input constraint, implying where this tool fits in a pipeline. It does not explicitly state when to choose this tool over alternative validators or when it should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_agent_obo_mandateAgent On-Behalf-Of (OBO) Mandate ValidatorB
Read-onlyIdempotent
Inspect

Agent On-Behalf-Of (OBO) Mandate Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-150-mcp-tool-scope-revocation-auditor. Output feeds: art-152-mcp-task-lifecycle-validator. Open at: https://ainumbers.co/chaingraph/art-151-agent-obo-mandate-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
verdictNo
has_scopeNo
has_intentNo
has_subjectNo
not_expiredNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real context beyond them: transient processing with no storage/logging/retention, the synthetic-input requirement, the exported AP2 artifact carrying execution_hash, and explicit upstream (art-150) and downstream (art-152) chain wiring. That is substantive behavioral disclosure for a node whose privacy and provenance posture matters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the identity and compute-mode behavior well, and each sentence carries some information, but it is a dense run-on that mixes mechanics, privacy, provenance, and a marketing-style link plus a snapshot disclaimer, which dilutes the actionable core.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description covers compute routing, privacy, the exported artifact, and chain provenance. Adequate for this node; only the actual validation semantics and sibling routing are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description confirms the compute-mode semantics and frames parent_hashes/policy_parameters as chaining and decision inputs, but adds no format or manifest detail beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource (validate Agent On-Behalf-Of mandate) and identifies itself as an OpenChainGraph compliance_mandate compute node, but the description largely restates the title and never explains what the validation actually checks (structure, signature, scope, expiry). Several close siblings (validate_ap2_mandate_chain, validate_ap2_mandate_credential, agentic_mandate_sandbox) exist and none are distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives useful compute-mode mechanics (compute:"auto" vs "browser", gpu:true always delegates) and a data constraint ("use synthetic or anonymised inputs only"), but no statement of when this validator should be chosen over alternatives or what a valid/invalid outcome means. No when-to-use, no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ai_impact_assessmentAI Risk Impact Assessment ValidatorB
Read-onlyIdempotent
Inspect

AI Risk Impact Assessment Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-171-iso42001-aims-clause-conformance. Output feeds: art-173-ai-system-governance-classifier. Open at: https://ainumbers.co/chaingraph/art-172-ai-risk-impact-assessment-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
completeNo
fields_passedNo
fields_checkedNo
completeness_scoreNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, non-openWorld. The description adds genuine behavioral context beyond that: transient processing with no storage/logging/retention, the requirement to use synthetic/anonymised inputs, server-vs-browser execution rules for gpu:false/gpu:true nodes, and the emitted AP2 artifact with execution_hash. This is substantive disclosure, though the safety profile is partly redundant with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense wall of boilerplate, URLs, and internal jargon (OpenChainGraph, AP2, FV-status, a long receipt hash) that buries the actual purpose. The FV-status sentence and full URL are low-value for an agent deciding whether to call the tool, and nothing is front-loaded around what the validation does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description covers compute semantics, chain inputs/outputs, data-handling constraints, and provenance adequately for correct invocation. The main gap is what the decision function actually evaluates, which is deferred to the external 'manifest'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds marginal value by explaining that chaining consumes upstream execution_hashes and exports a new hash for provenance, but it does not clarify policy_parameters field names ('See the tool's manifest'). Baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an 'OpenChainGraph compute node (compliance_mandate)' and an 'AI Risk Impact Assessment Validator', but it never states in plain terms what the validation actually checks. The name/title carry most of the meaning; the prose is dominated by infrastructure narrative rather than a specific verb+resource explaining what the assessment evaluates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides pipeline positioning ('Consumes upstream artifacts from art-171-iso42001-aims-clause-conformance. Output feeds: art-173-ai-system-governance-classifier') and compute-mode selection guidance, which implies when to use it in a chain. However, it never states when to choose this over the many nearby assess_*/validate_* siblings, nor any prerequisites or exclusions beyond the chain slots.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ap2_mandate_chainAP2 Mandate-Chain ValidatorC
Read-onlyIdempotent
Inspect

AP2 Mandate-Chain Validator: OpenChainGraph compute node (payment_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-02-agent-spend-policy-simulator, art-03-x402-settlement-modeler, art-04-agent-identity-attestation-checker, art-12-acp-checkout-conformance-validator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-01-ap2-mandate-chain-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
has_cartNo
checks_runNo
mandate_idsNo
failing_checksNo
warning_checksNo
human_not_presentNo
validation_verdictNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive), and the description adds real value on top: transient processing with no storage/logging/retention, the server-vs-browser compute routing including that gpu:true nodes always delegate, and that the output is an AP2 artifact carrying execution_hash for chain provenance. It does not explain failure semantics or what a failed validation returns, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with agent-irrelevant material: a full 64-character FV-status digest, an HTML URL, and a five-item downstream 'Output feeds' list. The genuinely useful compute-mode and privacy statements are buried behind OpenChainGraph boilerplate, so the most important information is not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the return value needn't be explained, and compute/privacy/provenance are covered. However, for a validation tool it never states what constitutes a passing or failing chain, what the artifact contains beyond execution_hash, or what parent_hashes are required, leaving the core validation contract underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute's enum semantics and the parent_hashes/parent_tool_ids pairing. The description largely restates the compute routing that the schema property description already contains, and its parent_hashes note ('sets chain.parent_hashes in the export') duplicates the schema. Baseline 3 for a schema that does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state the verb+resource ('AP2 Mandate-Chain Validator'), but the description itself never says what is being validated or what a valid vs invalid mandate chain means. Instead it opens with compute-node plumbing ('OpenChainGraph compute node (payment_mandate)'), so the purpose is inferred from the name rather than stated. It also does not distinguish itself from close siblings like validate_ap2_mandate_credential or build_ap2_cartmandate_hashchain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage rule is 'Use synthetic or anonymised inputs only,' plus a compute-mode routing note. There is no guidance on when to use this validator versus the AP2 credential validator or hashchain builder, nor any prerequisites (does it need parent_hashes to be useful?). Usage is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ap2_mandate_credentialAP2/MCP Policy ValidatorB
Read-onlyIdempotent
Inspect

AP2/MCP Policy Validator: OpenChainGraph compute node (scheme_rule). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-16-google-ap2-mandate-builder, art-27-agentic-readiness-diagnostic. Output feeds: art-18-mcp-developer-readiness-scorecard. Open at: https://ainumbers.co/chaingraph/art-17-ap2-mcp-policy-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses genuinely useful behavior: server-vs-browser compute delegation, that gpu:true nodes always delegate, that inputs are processed transiently and not stored or logged, and that it exports an artifact with execution_hash for provenance. These are traits the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the text pads itself with infrastructure boilerplate, an external URL, and a long FV-status hash string that does not help an agent invoke the tool. The core 'what does this validate' content is crowded out by non-invocation detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does cover the return side (AP2 artifact with execution_hash) and the chaining inputs, which is helpful. But the opaque policy_parameters object — the substantive input for a 'policy' validator — is not explained, leaving the core invocation under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the compute-mode behavior already documented in the schema and adds nothing new about parent_hashes/parent_tool_ids, while policy_parameters is left opaque in both ('See the tool's manifest for field names').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description labels itself an 'AP2/MCP Policy Validator' and 'OpenChainGraph compute node (scheme_rule)', which gives a verb-ish category but never states what is actually validated or against which policy. It does not distinguish itself from close siblings like validate_ap2_mcp_policy or validate_ap2_mandate_chain, which an agent must choose between.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is real chaining guidance ('Consumes upstream artifacts from art-16... art-27... Output feeds: art-18') and a data-handling caveat ('Use synthetic or anonymised inputs only'), which implies usage. However, there is no explicit when-to-use/when-not-to-use versus the sibling validators, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ap2_mcp_policyAP2 MCP Policy Validator & BridgeA
Read-onlyIdempotent
Inspect

Validate AP2 Policy Mandate JSON payloads against the Unified Build Contract v1.0 schema. Auto-generates MCP tool definitions from the mandate and simulates agent ingestion of agent_instructions. Use when authoring or testing AP2 agentic payment policies. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validNo
export_jsonNo
schema_errorsNo
mcp_tool_definitionNo
agent_ingestion_simulationNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive. Description adds client-side execution (zero PII, zero network) and notes auto-generation/simulation side effects, adding value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and front-loaded with the primary purpose. Additional details are provided without excessive verbosity. Could be slightly more structured but efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core validation, usage context, and behavior (client-side, no PII). Since output schema exists, it is acceptable not to describe return values. Additional capabilities are mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the 'inputs' parameter. The description adds that inputs are applied via the AIN Bridge prefill, which provides minor additional context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it validates AP2 Policy Mandate JSON against a specific schema, and describes additional capabilities (auto-generation, simulation). However, it does not explicitly differentiate from similar sibling tools like validate_ap2_mandate_chain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises use when authoring or testing AP2 agentic payment policies, providing clear context. Does not mention when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_audit_trail_completenessAudit-Trail Completeness AttestationB
Read-onlyIdempotent
Inspect

Audit-Trail Completeness Attestation: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-517-audit-trail-completeness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
gap_countNo
window_endNo
undecidableNo
window_startNo
table_versionNo
regulatory_basisNo
continuity_verdictNo
continuity_mechanismNo
event_counts_by_typeNo
retention_conformanceNo
privileged_action_coverageNo
known_gap_candidates_reconciledNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description adds genuinely useful behavior: inputs are processed transiently and not stored or logged, server-side vs browser delegation depends on compute mode and gpu flag, and the tool exports an AP2 artifact carrying execution_hash for chain provenance. That is real disclosure the annotations don't provide, though it omits failure/edge behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the title, but a large share of the text is infrastructure boilerplate (Cloudflare Workers kernels, snapshot-not-subscription, a raw FV-status URL/hash) rather than task-relevant content, so several sentences do not earn their place for selection or invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and the annotations plus full schema coverage handle safety and parameters. What is missing is the substantive part: what constitutes a complete audit trail and what the decision function evaluates — an agent knows the mechanics but not the semantics of the validation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail. The description restates the compute-mode semantics (duplicating the schema) and vaguely references chain provenance, but adds little on parent_tool_ids or policy_parameters beyond the manifest pointer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title line identifies it as an 'Audit-Trail Completeness Attestation' OpenChainGraph compute node in the compliance_mandate family, which hints at the resource, but the body never states what the tool actually validates or checks — it's consumed by execution-mode boilerplate. An agent can infer 'attest audit-trail completeness' from the name/title, but the description adds no domain substance, and nothing distinguishes it from siblings like validate_agent_audit_trail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is a constraint ('Use synthetic or anonymised inputs only') plus compute-mode selection semantics. There is no statement of when to choose this tool versus validate_agent_audit_trail, attest_daily_reconciliation, or the many other validate_/attest_ siblings, and no prerequisites for chaining.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_c2pa_manifestC2PA Content Credential Manifest ValidatorC
Read-onlyIdempotent
Inspect

C2PA Content Credential Manifest Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-124-content-credential-signature-verifier. Open at: https://ainumbers.co/chaingraph/art-123-c2pa-manifest-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely useful behavioral facts beyond them: deterministic compute, server-vs-browser execution semantics, browser delegation URL behaviour, transient non-retention of inputs, synthetic-input-only warning, and an AP2 artifact export with execution_hash. These are real operational details an agent needs. It loses a point for not stating what the validation verdict looks like or any failure/uncertain outcome behaviour.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text opens with generic platform boilerplate rather than the tool's purpose, and a large fraction of the content (FV-status receipt path and hash, OpenChainGraph node taxonomy, URL) is incidental metadata. The useful clauses about compute mode and data handling are buried mid-paragraph. It is both over-long for what it communicates and not front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and a nested free-form parameter, the description should explain what a successful/unsuccessful validation means and what the exported artifact contains. Instead it covers only compute plumbing, leaving the core question of this validator — what is checked and what a verdict implies — unanswered. Adequate for calling the tool mechanically, insufficient for using it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes and parent_tool_ids parameters are already documented; the description merely paraphrases the compute enum. The key gap is policy_parameters, a free-form object whose field names are deferred to "the tool's manifest" with no in-band hints, and the description adds nothing there. Baseline 3 is appropriate given the schema carries the documented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a specific verb+resource (validate a C2PA Content Credential manifest), so the agent knows roughly what operation this is. However, the body never elaborates on what validation it performs, and it does not distinguish itself from near-siblings such as verify_content_credential_signature, validate_content_binding_assertion, or decode_c2pa_aiml_assertions. Most of the text is infrastructure boilerplate rather than purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this validator over the signature verifier or other C2PA-related siblings; the only conditional logic described is compute-mode selection, which is a parameter mechanic, not usage guidance. The downstream note ("Output feeds: art-124-content-credential-signature-verifier") hints at pipeline position but stops short of telling the agent when to call this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_canton_dvp_atomicityCanton DvP Atomicity ValidatorB
Read-onlyIdempotent
Inspect

Canton DvP Atomicity Validator: OpenChainGraph compute node (settlement_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: 505-tokenized-collateral-eligibility-checker. Open at: https://ainumbers.co/tools/507-canton-dvp-atomicity-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pacs008No
verdictNo
finality_flagNo
herstatt_flagNo
atomicity_flagNo
execution_hashNo
compliance_flagsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, and the description adds real context: transient processing with no storage/logging/retention, the 'synthetic or anonymised inputs only' constraint, the compute-mode delegation behavior, and export of an AP2 artifact with execution_hash for chain provenance. This goes meaningfully beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Operational details are front-loaded, but the opening repeats the title three ways ('Canton DvP Atomicity Validator: OpenChainGraph compute node... Deterministic OpenChainGraph compute node'), and the trailing FV-status URL plus 64-char hash consume space with little selection value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the operational/privacy context is complete. However, for a validation tool whose sole substantive input (policy_parameters) is a free-form object, the description never explains what the decision function evaluates, leaving the agent unable to construct meaningful inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode behavior and implies chain provenance via execution_hash but adds no detail on how to populate the opaque policy_parameters object — the schema defers to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title carry the meaning ('Canton DvP atomicity'), but the description itself never states what the validation actually checks — it spends its opening on the fact that it is a 'Deterministic OpenChainGraph compute node' and describes compute modes. It does not distinguish itself from close siblings like validate_pvp_settlement, validate_cross_network_settlement, or check_cash_leg_finality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. The only routing hint is 'Output feeds: 505-tokenized-collateral-eligibility-checker', which describes downstream consumption, not when an agent should pick this tool over the many other settlement-validity siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_canton_party_allowlistCanton Party Allowlist ValidatorC
Read-onlyIdempotent
Inspect

Canton Party Allowlist Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/tools/509-canton-party-allowlist-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
party_resultsNo
compliance_flagsNo
portfolio_verdictNo
iso20022_party_identificationNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses genuinely useful behavior: transient processing with no storage, logging or retention; that compute:'browser' returns a delegation URL instead of a result; and that an AP2 artifact with execution_hash is exported for provenance. These are concrete operational traits an agent needs. It loses a point for burying them in generic boilerplate and never explaining failure modes or what the validation actually emits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but front-loads duplicated title text and backend architecture (Cloudflare Workers, kernels, gpu:false nodes) while omitting the one thing that matters — what the validation does. The FV-status URL and offline-verification aside consume substantial space without helping an agent invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and full annotations exist, so return values and safety are covered. But the input payload is a free-form policy_parameters object whose fields the description defers to an external 'manifest', leaving the agent unable to construct a valid call. For a compliance-mandate decision tool, the absence of any domain description is a serious completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail; the description's restatement of compute modes adds nothing. Critically, the description does not compensate for policy_parameters being an opaque, untyped object — it offers no field names or examples for the actual decision inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title verbatim ('Canton Party Allowlist Validator: OpenChainGraph compute node'), then describes the compute infrastructure rather than the validation task. It never says what a Canton party allowlist is, what rule or mandate the decision function evaluates, or how it differs from siblings like validate_canton_dvp_atomicity or validate_canton_selective_disclosure. This is closer to tautology than a stated purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no differentiation from the many other Canton/validation tools in the sibling list. The only usage-adjacent statements are the privacy constraint ('Use synthetic or anonymised inputs only') and the compute-mode selection rules, which are operational constraints rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_canton_selective_disclosureCanton Selective-Disclosure DvP Reconciliation AttestationB
Read-onlyIdempotent
Inspect

Canton Selective-Disclosure DvP Reconciliation Attestation: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 507-canton-dvp-atomicity-validator. Output feeds: cry-01-zk-compliance-proof-generator. Open at: https://ainumbers.co/chaingraph/art-108-canton-selective-disclosure.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
bank_view_okNo
cross_leak_fieldsNo
no_cross_leg_leakNo
registrar_view_okNo
partition_attestationNo
reconciles_to_commitmentNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description goes further by disclosing compute-mode behavior ('auto' vs 'browser' delegation), transient non-retention of inputs, and that it exports an AP2 artifact with execution_hash for provenance. This is meaningful operational context beyond the annotations, though the FV-status snapshot explanation is tangential to invoking the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is packed into a single run-on paragraph mixing purpose, compute semantics, privacy, provenance, and a long FV-status URL/hash. The useful routing cues (upstream/downstream) sit mid-paragraph, and the 64-character hash blob is not load-bearing for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers compute modes, privacy, and chaining. However, it never clarifies what the attestation actually validates or how to populate policy_parameters (deferring to an external manifest), leaving a gap for a complex, kernel-backed node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode sentence largely duplicates the enum description and it defers field names to 'the tool's manifest,' adding little semantic value over the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause restates the name/title and labels the tool an 'OpenChainGraph compute node (attestation_mandate)' but never states the actual validating action (e.g. what it checks for selective-disclosure correctness on Canton DvP). It does offer some differentiation by naming its upstream ('507-canton-dvp-atomicity-validator') and downstream ('cry-01-zk-compliance-proof-generator') artifacts, so an agent can place it in the chain, but the core verb+resource is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when/when-not guidance, no alternatives named among the many validate_* siblings, and no prerequisites for chaining. The only directive is 'Use synthetic or anonymised inputs only,' which is an input constraint rather than a selection rule. Upstream/downstream hints imply ordering but not when to call this versus validate_canton_dvp_atomicity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_cat_bond_trigger_termsCat Bond Trigger Terms ValidatorC
Read-onlyIdempotent
Inspect

Cat Bond Trigger Terms Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-251-compute-parametric-trigger-payout. Open at: https://ainumbers.co/chaingraph/art-252-validate-cat-bond-trigger-terms.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
pii_noteNo
layer_widthNo
terms_validNo
table_sourceNo
payout_amountNo
table_versionNo
layer_positionNo
pro_rata_factorNo
implied_coverageNo
not_legal_adviceNo
regulatory_basisNo
exhaustion_reachedNo
attachment_breachedNo
coverage_amount_usedNo
excess_above_attachmentNo
cascade_attachment_checkNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations covering the safety profile (readOnly, idempotent, non-destructive, closed-world), the description still adds real behavioral context: transient processing with no storage/logging/retention, synthetic-input requirement, browser-delegation behavior for gpu:true, and an AP2 artifact export carrying execution_hash for provenance. That is meaningful disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense boilerplate block that repeats the title, then repeats the compute concept ('Deterministic OpenChainGraph compute node', compute:'auto'/'browser' explained twice), and buries the domain purpose. It is verbose and not front-loaded around what the tool computes or validates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but the description is still missing the core domain semantics: what constitutes a valid cat-bond trigger term, what policy_parameters should contain, and what the validation actually checks. For a nested-object, opaque-parameter tool this leaves a significant gap despite rich infrastructure prose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates compute-mode semantics (auto/server/browser) that the schema already documents and offers nothing new on parent_hashes, parent_tool_ids, or policy_parameters — the latter it explicitly defers ('See the tool's manifest for field names').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a specific verb+resource (validate cat bond trigger terms), so the domain intent is inferable. However the description body never elaborates what validation actually means here — it opens by restating the title and then pivots entirely to compute-infrastructure boilerplate, giving no differentiation from the many other validate_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance. The only usage signal is the upstream dependency note ('Consumes upstream artifacts from art-251-compute-parametric-trigger-payout'), which hints at chaining but does not tell the agent what conditions select this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_cctp_v2_transferArc CCTP v2 Transfer ValidatorC
Read-onlyIdempotent
Inspect

Arc CCTP v2 Transfer Validator: OpenChainGraph compute node (settlement_mandate). Regulatory deadline: 2026-07-31 (CCTP v1 manual relay phase-out begins 31 Jul 2026 (Circle announcement). All v1 integrations must migrate.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-42-arc-fit-diagnostic. Open at: https://ainumbers.co/chaingraph/art-47-arc-cctp-transfer.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
gradeNo
verdictNo
fail_countNo
warn_countNo
dest_domainNo
notional_usdNo
source_domainNo
transfer_modeNo
compliance_flagsNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description adds substantive behavior: deterministic execution, compute:"auto" running server-side on Cloudflare Workers vs compute:"browser" returning a delegation URL, gpu:true always delegating, and transient input handling ('not stored, logged, or retained'). It also notes the exported AP2 artifact with execution_hash and the upstream artifact dependency, which an agent could not infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense run-on paragraph that mixes purpose, deadlines, privacy posture, compute routing, provenance and a raw receipt URL. The core purpose is not front-loaded, and the long FV-status hash URL consumes space disproportionate to its value in a tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, the description leaves the substantive validation semantics and the policy_parameters field contract unresolved (punted to a manifest), which is the main thing an agent needs to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description's compute-mode explanation largely restates the enum's own schema description and adds nothing about parent_hashes, parent_tool_ids, or the policy_parameters object (whose fields are deferred to 'the tool's manifest').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('Arc CCTP v2 Transfer Validator') and then focuses on platform plumbing (compute node, kernel, artifact export) plus a regulatory deadline. It never states in plain terms what a transfer is validated against or what a pass/fail means, so the actual purpose rests on the name rather than the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no sibling alternative is named among the many validate_*/verify_* tools. The only usage signal is an implicit one from the 2026-07-31 CCTP v1 migration deadline, plus 'Use synthetic or anonymised inputs only,' which is input hygiene rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_collateral_swap_eligibilityCollateral Swap Eligibility ValidatorC
Read-onlyIdempotent
Inspect

Collateral Swap Eligibility Validator: OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 505-tokenized-collateral-eligibility-checker, 507-canton-dvp-atomicity-validator. Open at: https://ainumbers.co/tools/515-collateral-swap-eligibility-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pacs008Yes
value_aYes
value_bYes
eligibilityYes
hqla_impactYes
hqla_tier_aYes
hqla_tier_bYes
net_economic_valueYes

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds real behavioral context: compute modes and browser delegation, transient processing with no storage/logging/retention, the synthetic-inputs-only constraint, and the AP2 artifact with execution_hash. That is substantive disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dense but poorly front-loaded: two consecutive sentences repeat that it is an OpenChainGraph compute node before any functional information arrives, and site URL, FV-status path, and receipt boilerplate occupy prime real estate. Little of the infrastructure prose helps an agent decide to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and annotations cover safety, but for a 4-parameter validator the core question of what eligibility rule is evaluated and what policy_parameters should contain is left to an external manifest. An agent cannot confidently construct the decision input from this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; baseline is 3. The description's compute-mode paragraph duplicates the enum description rather than extending it, and delegates policy_parameters field names to 'the tool's manifest', adding no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Beyond the title and name, the description never states what the tool actually validates — no verb+resource explanation of collateral-swap eligibility. Instead it restates machine-level boilerplate ('OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node'), which is closer to tautology than purpose. Only the upstream-artifact sentence hints at its role, and that is chaining detail rather than function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many adjacent siblings (check_tokenized_collateral_eligibility, validate_fund_collateral, 505-...-eligibility-checker, 507-...-atomicity-validator). The 'Consumes upstream artifacts from' line implies an ordering but never states a when-to-use condition or an explicit alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_commission_hierarchyCommission Hierarchy ValidatorC
Read-onlyIdempotent
Inspect

Commission Hierarchy Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-266-reconcile-commission-statement. Open at: https://ainumbers.co/chaingraph/art-264-validate-commission-hierarchy.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
by_levelNo
is_validNo
pii_noteNo
violationsNo
agent_countNo
orphan_countNo
table_sourceNo
total_levelsNo
table_versionNo
not_legal_adviceNo
regulatory_basisNo
override_stacking_detectedNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior beyond them: transient processing with no storage or logging, a requirement to use synthetic/anonymised inputs, client-side browser delegation semantics, and an AP2 artifact with execution_hash for provenance. It stops short of describing what a failed validation looks like, but this is a strong add.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is dominated by boilerplate (compute binding, privacy assurances, a raw URL and a long FV-status hash) that crowds out task-relevant content. Multiple sentences do not earn their place for an agent deciding how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute/provenance mechanics are covered. But for a validation tool, the description omits what makes a hierarchy valid, what policy_parameters must contain, and what a failing result implies — gaps that a validator should close.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already fully documented in the schema, which sets a baseline of 3. The description's compute-mode text largely restates what the schema says, adding no new parameter meaning for policy_parameters, parent_hashes, or parent_tool_ids.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a verb and resource ("validate" + "commission hierarchy") and identifies it as an OpenChainGraph compliance_mandate compute node. However, it never says what is actually validated — no mention of commission splits, parent/child hierarchy, or reconciliation rules — so 'validate' remains vague. It partially differentiates via "Output feeds: art-266-reconcile-commission-statement", but not against the many sibling validators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no comparison to alternatives like reconcile_commission_statement. The only conditional guidance concerns the compute mode parameter, which is parameter-level detail rather than usage routing for the tool as a whole.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_content_binding_assertionContent Binding Assertion ValidatorC
Read-onlyIdempotent
Inspect

Content Binding Assertion Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-127-dual-layer-disclosure-verifier. Open at: https://ainumbers.co/chaingraph/art-128-content-binding-assertion-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial context beyond them: server- vs browser-side execution semantics, transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash for provenance. It also names the upstream artifact it consumes, which is useful operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded but bloated with duplicated framing ('OpenChainGraph compute node' appears twice) and mixes purpose, compute binding, privacy, artifact export, a URL, and an FV-status receipt hash. The long receipt string and URL consume space without helping invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should describe the return. It partially does (AP2 artifact with execution_hash, or a browser delegation URL) and explains chaining inputs, but it never states what a validation outcome/verdict looks like, which is the key result for a 'validator' node.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the compute enum and parent_hashes/parent_tool_ids chaining. The description largely repeats the compute-mode semantics already in the schema and adds no new meaning about policy_parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the name ('Content Binding Assertion Validator') and labels it an 'OpenChainGraph compute node (compliance_mandate)' but never explains what a content binding assertion is or what the tool actually checks. It does not distinguish itself from the many sibling validators (e.g. verify_dual_layer_disclosure, verify_content_credential_signature), so an agent cannot tell its specific purpose from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is 'Use synthetic or anonymised inputs only.' There is no statement of when to use this validator versus its siblings, no preconditions, and no conditions under which it should not be called.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_cross_network_settlementCross-Network Atomic Settlement ValidatorB
Read-onlyIdempotent
Inspect

Cross-Network Atomic Settlement Validator: OpenChainGraph compute node (settlement_mandate). Regulatory deadline: 2026-Q3 (ECB Pontes TARGET-link pilot end-Q3 2026; DTCC Collateral AppChain full production Oct 2026. Verify cross-network coordination patterns against current primary sources.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-56-tokenized-settlement-fit-diagnostic, art-59-settlement-asset-finality-classifier. Output feeds: 507-canton-dvp-atomicity-validator, 511-multi-currency-pvp-validator, cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-58-cross-network-settlement-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
pvp_checkNo
leg_findingsNo
atomicity_verdictNo
residual_exposureNo
settlement_risk_window_secNo
coordination_recommendationNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description adds meaningful behavioral detail: deterministic compute node, the auto/server/browser compute modes, transient processing with no storage/logging/retention, and the exported AP2 artifact carrying an execution_hash for chain provenance. This is genuinely useful context an agent cannot get from the annotation block.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dense boilerplate: regulatory deadline dates (ECB Pontes, DTCC AppChain), a URL, and an FV-status hash snapshot that have no bearing on invoking the tool. The actual purpose sentence is not front-loaded, and several sentences do not earn their place for an agent deciding whether to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and the description does cover dependencies, compute modes, and data handling. What remains thin is the validation logic itself — what coordination patterns are actually checked — leaving the agent with only a high-level sense of the tool's coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode behavior but adds nothing about the other parameters, and explicitly punts policy_parameters field names to 'the tool's manifest'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — 'Verify cross-network coordination patterns against current primary sources' — and names the upstream/downstream artifacts it chains with, which distinguishes it from generic validators like validate_pvp_settlement. The purpose is clear, but it is buried under compute-binding and provenance boilerplate rather than front-loaded.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through the dependency chain (consumes art-56 and art-59, feeds 507/511/cry-04) and the constraint 'Use synthetic or anonymised inputs only'. However, there is no explicit when-to-use / when-not-to-use guidance or named alternative against the many other settlement validators in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_cyclonedx_sbomCycloneDX SBOM Validator (EU CRA Annex I)B
Read-onlyIdempotent
Inspect

CycloneDX SBOM Validator (EU CRA Annex I): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-136-slsa-provenance-verifier. Open at: https://ainumbers.co/chaingraph/art-135-cyclonedx-sbom-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatNo
sbom_validNo
spec_versionNo
component_countNo
has_dependenciesNo
components_missing_purlNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial extra context: compute-mode routing (auto/server/browser, gpu:true delegation), transient processing with no storage or retention, and the export of an AP2 artifact with execution_hash for chain provenance. The only omission is what the validation actually returns or how failures surface, which the output schema likely covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is dominated by platform boilerplate (compute-node description, FV-status receipt URL, offline-verification note) that is generic across the whole toolset rather than tool-specific. Several sentences serve the platform rather than helping an agent decide to call this validator.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described. But for a CRA Annex I compliance validator whose inputs are a free-form policy_parameters object with unknown field names, the description never explains what evidence to supply or what criteria are checked, leaving a meaningful gap for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, giving a baseline of 3. The description restates the compute:auto/browser semantics but adds nothing new about parent_hashes, parent_tool_ids, or the opaque policy_parameters, whose field names it defers to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name plus parenthetical title give a specific verb+resource ('validate' + 'CycloneDX SBOM') and a regulatory scope (EU CRA Annex I). However, the description body never states what the validation actually checks or how it differs from the close sibling validate_spdx_sbom or check_cra_annex1_completeness, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no mention of alternatives among the many sibling validators. The only practical directive is 'Use synthetic or anonymised inputs only', which is an input constraint rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_deposit_token_complianceDeposit-Token Compliance ValidatorB
Read-onlyIdempotent
Inspect

Deposit-Token Compliance Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-56-tokenized-settlement-fit-diagnostic. Output feeds: 510-digital-asset-regulatory-classifier, cry-04-merkle-batch-verifier, art-59-settlement-asset-finality-classifier. Open at: https://ainumbers.co/chaingraph/art-57-deposit-token-compliance-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
status_asofNo
token_classNo
test_resultsNo
classificationNo
applicable_regimeNo
classification_gradeNo
remediation_checklistNo
capital_accounting_noteNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnly/idempotent/destructive=false, the description still adds substantive behavior: inputs are processed transiently and not stored/logged/retained, an AP2 artifact with execution_hash is exported for provenance, and browser-mode returns a delegation URL rather than computing. That is useful context beyond the structured safety hints, though it omits error/failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a wall of infrastructure boilerplate with redundancy ('OpenChainGraph compute node' stated twice) and a compute-mode explanation that duplicates the input schema. The actual purpose and provenance hooks are buried behind compute-binding mechanics rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the description covers provenance, privacy, and delegation routing. But for a compliance validator it never conveys what the validation evaluates, and policy_parameters (the decision function input) is left opaque, so an agent cannot confidently supply the operative input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; the description's compute-mode text largely repeats the schema enum description. Critically it does not clarify policy_parameters semantics, deferring with 'See the tool's manifest for field names' instead of compensating, so baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name restate 'Deposit-Token Compliance Validator' and the body labels it an 'OpenChainGraph compute node (compliance_mandate)', but no sentence states in plain terms what compliance property is actually checked. It gives pipeline positioning (consumes art-56, feeds art-59/510/cry-04) which helps orient it against siblings, yet the actual verb+resource of the decision function stays vague and jargon-wrapped.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the upstream/downstream artifact references place it in a chain, and 'Use synthetic or anonymised inputs only' is a real constraint. However there is no explicit when-to-use / when-not guidance distinguishing it from near neighbours such as validate_tempo_token_compliance or classify_digital_asset_regulatory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_dpp_data_carrierEU ESPR Digital Product Passport Data Carrier ValidatorB
Read-onlyIdempotent
Inspect

EU ESPR Digital Product Passport Data Carrier Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-116-product-lineage-builder. Open at: https://ainumbers.co/chaingraph/art-115-dpp-data-carrier-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
product_idNo
carrier_validNo
missing_elementsNo
ontology_versionNo
ontology_conformantNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: deterministic computation, server-side vs. browser delegation semantics, transient non-retained processing, and export of an AP2 artifact with execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is front-loaded with the tool's identity and compute behavior, which is reasonable, but the trailing FV-status/hash/URL sentence is dense plumbing that pads the definition. It is dense but not fully structured for scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich annotations, return values and safety need not be explained. However, a validator whose policy_parameters are undocumented ("See the tool's manifest") and whose validation criteria are never described leaves an agent unable to know what makes a data carrier valid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are documented in the schema, which sets the baseline at 3. The description mainly repeats the compute-mode semantics already in the schema and defers policy_parameters detail to 'the tool's manifest', adding little parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name states a specific verb and resource (validate DPP data carrier), but the description body largely restates the title and then pivots to infrastructure (compute node, compute modes) rather than describing what the validator actually checks. It is distinguishable by name from siblings like verify_product_authenticity, but the text itself does not clarify the validation's substance or scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives operational guidance about compute modes and privacy ("Use synthetic or anonymised inputs only"), but never states when this validator should be used versus sibling validators/verifiers, nor any preconditions or exclusions. The 'Output feeds: art-116-product-lineage-builder' note hints at downstream use but is not usage guidance for the caller.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_dtcc_ca_iso20022_messageDTC Corporate Actions ISO 20022 Message ValidatorC
Read-onlyIdempotent
Inspect

DTC Corporate Actions ISO 20022 Message Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-547-corporate-action-entitlement-recompute. Open at: https://ainumbers.co/chaingraph/art-546-dtcc-ca-iso20022-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
event_typeNo
violationsNo
error_countNo
reference_idNo
table_sourceNo
readiness_pctNo
table_versionNo
disambiguationNo
structure_validNo
message_functionNo
not_legal_adviceNo
dtcc_operator_mandate_basisNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, non-open-world), so the bar is lower — yet the description adds real context: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, compute modes change where execution happens, and an AP2 artifact with execution_hash is exported for provenance. That is substantive behavioral disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The payload is dominated by infrastructure boilerplate and a raw 64-character FV-status hash URL that consumes a large share of the text without helping an agent decide or invoke. The genuinely useful content (transient processing, artifact export, downstream feed) is buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a validator tool this is thin: the description never says which ISO 20022 corporate action messages or conformance rules are checked, nor what a failure looks like. Output schema exists so return values need not be explained, but the core validation semantics — the reason the tool exists — are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics (duplicating the enum description) and punts on the actual decision inputs with 'See the tool's manifest for field names' — a deflection rather than added meaning. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a specific verb+resource (validate DTC corporate actions ISO 20022 messages), and the description confirms it is a compliance_mandate compute node. However, the description body never explains what the validation actually checks — which DTC corporate action message types or rule sets are covered — so it adds little beyond the title and does nothing to distinguish it from siblings like lint_securities_settlement_message or validate_emir_trade_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no alternative named. The only routing hint is 'Output feeds: art-547-corporate-action-entitlement-recompute,' which implies a downstream chain but not when an agent should pick this tool over the many other validate_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_dtc_tokenized_treasuryDTC-Custodied Tokenized U.S. Treasury Issuance & DvPC
Read-onlyIdempotent
Inspect

DTC-Custodied Tokenized U.S. Treasury Issuance & DvP: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 510-digital-asset-regulatory-classifier. Output feeds: 507-canton-dvp-atomicity-validator. Open at: https://ainumbers.co/chaingraph/art-109-dtc-tokenized-treasury.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
dvp_readyNo
fed_eligibleNo
custody_link_okNo
daml_template_okNo
collateral_reuse_okNo
daml_lifecycle_gapsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, yet the description adds genuinely useful behavior context: transient processing with no storage/logging, the server-vs-browser compute delegation model, and the exported AP2 artifact with execution_hash. This exceeds what the annotations convey, though it omits any mention of failure behavior or result semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is buried under compute-binding boilerplate, a repeated title, and a verbatim FV-status receipt URL with a raw hash that an agent cannot act on. Several sentences (gpu:true delegation, FV-status snapshot) do not earn their place in a tool-selection context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, return-value explanation is unnecessary, and annotations cover the safety profile; the chaining and privacy notes round things out. What is missing is the core semantics of the decision function — what compliance check runs and what outcome it yields — leaving the definition only minimally complete for an agent to invoke it meaningfully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode sentence largely restates the schema's compute description, and policy_parameters is deferred to 'the tool's manifest', so little net semantic value is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title establish the verb+resource (validate a DTC-custodied tokenized Treasury issuance & DvP flow), and the description places it in a chain (consumes 510-... classifier, feeds 507-canton-dvp-atomicity-validator). But it never says what the validation actually decides or checks, so an agent cannot tell what this tool produces beyond 'a compliance_mandate compute node'. The purpose is implied by the title rather than stated in the body.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives indirect workflow context (upstream artifact source and downstream consumer) but never states when to use this tool versus siblings such as validate_canton_dvp_atomicity or validate_tokenized_security_lifecycle. Only a data-hygiene instruction ('use synthetic or anonymised inputs only') is offered as guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ebam_acmt_floweBAM Account Message Flow ValidationB
Read-onlyIdempotent
Inspect

eBAM Account Message Flow Validation: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-260-allocate-ihb-interest. Open at: https://ainumbers.co/chaingraph/art-262-validate-ebam-acmt-flow.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
is_validNo
pii_noteNo
ack_countNo
acmt_stateNo
error_countNo
orphan_countNo
report_countNo
table_sourceNo
request_countNo
table_versionNo
warning_countNo
total_messagesNo
orphan_requestsNo
message_sequenceNo
not_legal_adviceNo
regulatory_basisNo
validation_errorsNo
validation_warningsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description adds substantive behavior: the 'auto' vs 'browser' compute delegation semantics, that inputs are processed transiently and not stored or logged, that only synthetic/anonymised inputs should be used, and that it exports an AP2 artifact with execution_hash. These are meaningful operational details not present in structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode and privacy sentences are front-loaded and useful, but the trailing FV-status paragraph explaining the offline receipt snapshot is long and tangential to invoking the tool. Structure is serviceable but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be described, and the chaining inputs (parent_hashes/parent_tool_ids) map to the AP2 artifact/provenance narrative. What's missing is the core domain content: what flow conditions are validated and what a failure looks like—significant for a compliance-mandate validation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, including the compute enum. The description restates the compute-mode semantics but adds no syntax or usage detail beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title and opening line state a verb (validate) and resource (eBAM account message flow), and classify it as an OpenChainGraph compute node for compliance_mandate. However, the description never explains what the validation actually checks or what a valid/invalid flow means, so an agent cannot distinguish this from other 'validate_*' siblings beyond the topic label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions the downstream consumer ('Output feeds: art-260-allocate-ihb-interest') and provides a doc URL, but gives no when-to-use conditions, no prerequisites, and no contrast with alternatives such as allocate_ihb_interest or other validators. Usage is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_einvoice_batchEN 16931 / Factur-X E-Invoicing Batch ValidatorA
Read-onlyIdempotent
Inspect

EN 16931 / Factur-X E-Invoicing Batch Validator: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2026-09 (France large/medium mandatory September 2026; EU ViDA). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: rca-03-iso20022-address-migration-verifier, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-08-en16931-einvoice-batch-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses compute-mode behavior (auto/server/browser delegation, gpu:true always delegating), a data-handling guarantee (inputs processed transiently, not stored or logged), and that it exports an AP2 artifact with execution_hash. These are exactly the behavioral traits annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the entry is bloated with infrastructure boilerplate and a long fv-status hash/URL that adds little for invocation. The useful content (purpose, compute behavior, chaining, downstream feeds) is buried among receipt-verification and OpenChainGraph framing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four params (one nested), no output schema, and closed-world annotations, the description covers compute delegation, data retention, the emitted AP2 artifact, and downstream consumers. It stops short of describing the validation result itself (pass/fail, error detail), which an agent building on the output would benefit from.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters are documented in the schema, so the baseline is 3. The description reinforces compute modes and ties execution_hash to parent_hashes chaining, adding modest meaning, but policy_parameters is deferred to an external manifest, so it doesn't exceed the schema's contribution.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening line state a specific verb+resource+scope: validating EN 16931 / Factur-X e-invoice batches. It does not, however, differentiate itself from the many related siblings such as validate_einvoice_format, validate_vida_einvoice_conformance, or verify_einvoice_vat_calc, so an agent cannot tell which einvoice validator to pick from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no alternative named. The regulatory-deadline line ('France large/medium mandatory September 2026; EU ViDA') hints at applicability context but never tells the agent which sibling validator this supersedes or when to prefer it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_einvoice_formatE-Invoice Format ValidatorC
Read-onlyIdempotent
Inspect

E-Invoice Format Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-294-einvoice-vat-calc-verifier. Open at: https://ainumbers.co/chaingraph/art-293-einvoice-format-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatNo
findingsNo
parse_errorNo
missing_fieldsNo
line_item_countNo
rule_set_versionNo
structural_completenessNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (readOnly, idempotent, non-destructive, closed-world), and the description meaningfully extends that: determinism, server-vs-browser execution semantics, transient processing with no storage/logging/retention, and an AP2 artifact with execution_hash for chain provenance. The privacy and artifact-export details are real behavioral context an agent cannot get from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening wastes a sentence on a verbatim repeat ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and the trailing FV-status explanation is verbose relative to its value. The most important information — what the validator actually validates — is absent while boilerplate dominates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the execution/retention model is well covered. However, for a domain conformance validator with a dense set of einvoice siblings, the description omits the actual validation scope, which is the one thing an agent must know before calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode text largely restates the enum description and it does not identify any field names inside policy_parameters (explicitly deferred to 'the tool's manifest'), so it adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title establish the verb+resource (validate e-invoice format), but the description body never specifies what 'format' means — no standard, message type, or rule set is named. With siblings like validate_einvoice_batch, validate_vida_einvoice_conformance, and verify_einvoice_vat_calc in the same family, this definition offers no basis for telling them apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to sibling validators, no prerequisites, and no statement of what a passing/failing input looks like. The only usage direction is the constraint to use synthetic or anonymised inputs and the compute-mode selection, which is about infrastructure rather than selecting this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_emir_lifecycle_eventEMIR Lifecycle Event ValidatorB
Read-onlyIdempotent
Inspect

EMIR Lifecycle Event Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-156-emir-counterparty-pairing-reconciler. Output feeds: art-158-emir-reporting-readiness-diagnostic. Open at: https://ainumbers.co/chaingraph/art-157-emir-lifecycle-event-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), and the description adds real context beyond them: compute-mode behavior ('auto' server vs 'browser' delegation URL, gpu:true always delegates), transient non-storage/logging guarantees, and a 'use synthetic or anonymised inputs only' constraint. It also discloses the AP2 artifact/execution_hash export and that the FV-status link is an offline snapshot, not a subscription.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text leads with a name-restating header and 'OpenChainGraph compute node (compliance_mandate)' boilerplate rather than what the tool does, then packs compute modes, data-handling policy, artifact chaining, and a hashed FV-status URL into one dense paragraph. The actual purpose is never front-loaded, so the structure works against the agent scanning it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, four parameters including a free-form nested policy_parameters object, and a validation tool that produces a verdict, the description says nothing about what the validation evaluates or what result it returns. The compute/provenance plumbing is covered well, but the domain-critical half of the contract is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the compute enum, and this is the baseline 3 case. The description repeats the compute-mode semantics verbatim and adds nothing about parent_hashes/parent_tool_ids ordering or policy_parameters fields (it explicitly defers to an external manifest), so no meaningful value is added over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title convey a validate verb on an EMIR lifecycle-event resource, but the description itself never says what the validation actually checks or what it operates on beyond generic 'compute node' boilerplate. It never differentiates itself from close siblings like validate_emir_trade_report, validate_emir_upi, or check_emir_uti_completeness. Purpose is inferable but left vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It does give pipeline positioning ('Consumes upstream artifacts from: art-156-emir-counterparty-pairing-reconciler', 'Output feeds: art-158-emir-reporting-readiness-diagnostic'), which implies when in a chain to call it. However there is no explicit when-to-use vs. when-not-to-use against the many neighboring EMIR validators, and no prerequisites stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_emir_trade_reportEMIR Trade Report Field ValidatorC
Read-onlyIdempotent
Inspect

EMIR Trade Report Field Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-154-emir-uti-completeness-checker. Open at: https://ainumbers.co/chaingraph/art-153-emir-trade-report-field-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, but the description adds meaningful traits beyond them: deterministic execution, transient no-store/no-log processing, a synthetic-inputs-only constraint, and the fact that it exports an AP2 artifact with an execution_hash for chain provenance. This is substantive behavioral context an agent would not get from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with infrastructure boilerplate (a repeated 'OpenChainGraph compute node' clause), a full URL, and a 64-character FV-status hash that consume space without helping selection or invocation. The genuinely useful constraints (transient processing, synthetic inputs only, artifact export) are buried rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should convey what the validation returns, but it only says an AP2 artifact is exported and names a downstream consumer; it never states whether results are pass/fail, field-level errors, or a completeness score. The compute and data-handling behavior is well covered, but the validation outcome is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds nothing about parameters, and notably leaves policy_parameters' field names unspecified ('See the tool's manifest'), so it does not compensate for the opaque nested object. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title signal a specific verb+resource (validate EMIR trade report fields), but the description body spends nearly all its words on compute-fabric mechanics ('compute node', server/browser delegation) and provenance rather than on what the validator actually checks. It names a downstream consumer (art-154-emir-uti-completeness-checker) but does not differentiate itself from close siblings like validate_emir_upi or check_emir_uti_completeness beyond the bare title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives such as validate_emir_upi, validate_emir_lifecycle_event, or run_emir_reporting_fit. The only relational statement ('Output feeds: art-154...') describes a downstream pipeline link, not a routing condition, so usage must be inferred solely from the title.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_emir_upiEMIR UPI ValidatorC
Read-onlyIdempotent
Inspect

EMIR UPI Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-154-emir-uti-completeness-checker. Open at: https://ainumbers.co/chaingraph/art-155-emir-upi-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although annotations already cover readOnly/idempotent/non-destructive, the description adds real behavioral context: compute modes route to server-side cloud execution or browser delegation URLs, inputs are processed transiently and not stored/logged, and it exports an AP2 artifact with execution_hash and consumes upstream artifact art-154. That is substantive disclosure beyond the annotation set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dominated by generic platform boilerplate (compute binding, FV-status receipt hashing, artifact URL) that is not front-loaded on the tool's purpose. Most sentences describe the surrounding infrastructure rather than this tool, so they do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a validator with zero required parameters, a nested free-form policy_parameters object, and no output schema, the description should at minimum say what gets validated and what a valid/invalid result means. Instead it omits the domain semantics entirely, leaving the core contract undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so compute, parent_hashes, parent_tool_ids, and policy_parameters are already documented in the schema. The description adds no field-level meaning beyond repeating the compute binding concept, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what validating an EMIR UPI actually means or what it checks; it only restates that this is a 'Deterministic OpenChainGraph compute node' and gives provenance/URL metadata. The actual purpose is carried entirely by the name and title, with no differentiation from siblings like validate_emir_trade_report, check_emir_uti_completeness, or validate_emir_lifecycle_event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, what inputs it expects, or which adjacent EMIR validators it supersedes. The only directive is the safety constraint 'Use synthetic or anonymised inputs only', which is an input restriction, not usage selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_eudr_due_diligence_statementEUDR DDS Field ValidatorB
Read-onlyIdempotent
Inspect

EUDR DDS Field Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-166-eudr-geolocation-plot-validator. Open at: https://ainumbers.co/chaingraph/art-165-eudr-dds-field-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
quantityNo
conformantNo
fields_passedNo
fields_checkedNo
missing_fieldsNo
country_of_productionNo
micro_operator_exemptionNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real context: inputs are 'processed transiently ... not stored, logged, or retained', synthetic/anonymised inputs are required, an AP2 artifact with execution_hash is exported, and compute mode behaviour is spelled out. These are non-obvious operational facts an agent could not infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is dense and free of filler sentences, but it is front-loaded with infrastructure boilerplate (node type, kernel registration, FV-status receipt URL, site link) before anything about validation, and the format string for the artifact. Several lines serve provenance rather than tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the safety profile is covered by annotations. However, for a compliance validator with zero required parameters and an open-ended policy_parameters object, the description leaves the validated field set and success/failure semantics undefined, which is the information an agent most needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3 and the schema already documents compute, parent_hashes and parent_tool_ids in detail. The description repeats the compute-mode semantics rather than adding new meaning, and for policy_parameters — the actual DDS content — it defers entirely to 'the tool's manifest for field names', leaving the validation input surface opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title identifies this as the 'EUDR DDS Field Validator' but the description itself never states what the validation does — which DDS fields are checked, against what rules, or what a failing result means. It spends its opening sentences on node taxonomy ('compute node (compliance_mandate)', 'deterministic OpenChainGraph compute node') rather than the tool's function, and gives no differentiation from the many EUDR siblings (validate_eudr_geolocation, score_eudr_country_risk, run_eudr_readiness_fit, classify_eudr_commodity_scope).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative, which matters given at least five EUDR-named siblings. The one useful routing hint is 'Output feeds: art-166-eudr-geolocation-plot-validator', which tells the agent this tool sits upstream of a geolocation validator, but that is a pipeline note rather than invocation guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_eudr_geolocationEUDR Geolocation Plot ValidatorB
Read-onlyIdempotent
Inspect

EUDR Geolocation Plot Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-165-eudr-dds-field-validator. Output feeds: art-167-eudr-commodity-scope-classifier. Open at: https://ainumbers.co/chaingraph/art-166-eudr-geolocation-plot-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validNo
issuesNo
area_haNo
geo_typeNo
size_rule_metNo
polygon_closedNo
coordinates_validNo
micro_operator_exemptionNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotation set (readOnly, idempotent, non-destructive, closed-world), the description discloses that inputs are processed transiently and not stored, logged, or retained, that execution happens on Cloudflare Workers or via browser delegation, and that it exports an AP2 artifact with execution_hash for chain provenance. These are meaningful behavioral facts an agent would not learn from the annotations or schema; it stops short of describing failure modes or validation outcomes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is redundant ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'), the compute-mode explanation duplicates the schema, and the closing FV-status paragraph with a 64-character hash is heavy meta-content that crowds out functional description. Front-loading is weak: the most useful chain context appears after the boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the annotations cover the safety profile. What remains missing is the actual decision function: the description never says what the validator checks or what belongs in policy_parameters (explicitly deferred to a manifest the agent cannot see), which is a real gap for a tool whose only substantive input is that opaque object.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely restates the compute-mode semantics that already live in the schema and adds nothing about the opaque policy_parameters object (it defers to 'the tool's manifest'). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description places the tool as an 'OpenChainGraph compute node (compliance_mandate)' and identifies it via the provenance chain (consumes art-165-eudr-dds-field-validator, feeds art-167), but it never states in functional terms what the validator actually validates about an EUDR geolocation plot. An agent must rely on the name/title to infer the resource and action, and there is no differentiation from siblings like validate_eudr_due_diligence_statement or run_eudr_readiness_fit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives real guidance for the 'compute' parameter (auto/server/browser, gpu:true always delegates) and a usage constraint ('Use synthetic or anonymised inputs only'), plus the upstream/downstream chaining context. However it never says when to reach for this tool versus the many sibling EUDR validators, and it offers no prerequisites for the upstream artifact it consumes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_eugb_factsheetEU Green Bond Factsheet & Allocation ValidatorC
Read-onlyIdempotent
Inspect

EU Green Bond Factsheet & Allocation Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-68-carbon-compliance-fit-diagnostic, art-73-taxonomy-alignment-scorer. Output feeds: cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-75-eugb-factsheet-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
referenceNo
label_readyNo
annex_i_gapsNo
total_proceedsNo
annex_ii_statusNo
aligned_proceedsNo
annex_i_completeNo
conformance_gradeNo
conformance_scoreNo
proceeds_aligned_pctNo
proceeds_threshold_metNo
proceeds_threshold_pctNo
external_reviewer_statusNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses real behavioral traits: compute mode semantics ('auto' server-side on Workers for gpu:false kernels, 'browser' returns a delegation URL, gpu:true always delegates), transient processing with no storage or logging, an AP2 artifact export carrying execution_hash for chain provenance, and a synthetic-inputs-only constraint. The gap is that it never states what the validation returns behaviorally (pass/fail, findings) — the disclosure is infrastructure-centric rather than outcome-centric.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is an undifferentiated run-on block that leads with a title repeat and platform boilerplate rather than the tool's function. It carries a raw 64-hex FV-status receipt URL and an 'Open at' link, plus compute-binding minutiae, which crowd out the sentence an agent actually needs. Little is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but for a compliance validation node with a free-form nested policy_parameters object and zero field documentation anywhere, the missing piece is what inputs to supply and what the validator evaluates. The description is dominated by infrastructure framing and cross-references (chain header, FV-status snapshot) that do not help the agent call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters are documented in the schema, so the baseline of 3 applies. The description restates the compute-mode behavior already in the schema and alludes to chaining via execution_hash/parent artifacts, but says nothing about policy_parameters beyond 'See the tool's manifest' — the description adds no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence merely restates the title plus platform metadata ('OpenChainGraph compute node (compliance_mandate)'), and the body never states what an EU Green Bond factsheet validation actually checks or decides. The only domain signal is the incidental mention of upstream artifacts (carbon-compliance-fit, taxonomy-alignment-scorer), which hints at scope but does not describe the operation. An agent learns the resource but not the verb's meaning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance relative to the many sibling validators (e.g. validate_eudr_due_diligence_statement, validate_taxonomy_*), and no prerequisites. The chain metadata ('Consumes upstream artifacts from…', 'Output feeds…') describes pipeline position, which is context but not selection guidance, and 'Use synthetic or anonymised inputs only' is a constraint rather than a usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_fdic370_output_fileFDIC Part 370 Output-File ValidatorC
Read-onlyIdempotent
Inspect

FDIC Part 370 Output-File Validator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-535-fdic370-output-file-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
boundaryNo
decisionNo
rationaleNo
as_of_dateNo
mismatchesNo
file_totalsNo
art507_resultNo
art507_suppliedNo
institution_refNo
totals_mismatchNo
small_buyer_caveatNo
supplied_row_countNo
conforming_row_countNo
file_structure_errorsNo
ownership_code_handlingNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description usefully adds behavior beyond them: transient processing with no storage/logging/retention, a mandate to use synthetic/anonymised inputs, and an AP2 artifact export carrying execution_hash for provenance. It stops short of describing failure behavior or what the validator emits on a failing file.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening title clause is front-loaded, but the body is dominated by reusable OpenChainGraph infrastructure boilerplate and a long FV-status URL that do not help an agent select or call this specific tool. Signal-to-noise is poor for a validator whose real behavior is never stated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a domain-specific compliance validator with a generic policy_parameters object and an opaque output schema, the description never explains the expected input (the output file? policy parameters?) or the nature of the validation, so an agent cannot confidently construct a call. Output values need not be described given the output schema, but the input/behavior gap is substantial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters (including the compute enum and parent_hashes/parent_tool_ids chaining fields) are already documented in schema. The description's compute-mode prose duplicates the schema, and it adds nothing about what belongs in policy_parameters, deferring to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title give a specific verb and resource (validate an FDIC Part 370 output file), but the description itself only restates the title and then descends into infrastructure boilerplate. It never says what aspects of the output file are checked or what 'valid' means. The many sibling validators (e.g., validate_qfc_recordkeeping_file, validate_slate_report_fields) are not distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no routing to alternative validators. The discussion of compute modes is generic execution plumbing rather than instruction about when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_form5500_schedulesERISA Form 5500 Schedule ValidatorB
Read-onlyIdempotent
Inspect

ERISA Form 5500 Schedule Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-401-validate-form5500-schedules.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
compliantNo
shelf_noteNo
error_countNo
table_sourceNo
is_large_planNo
table_versionNo
warning_countNo
arithmetic_tieNo
disambiguationNo
filing_deadlineNo
regulatory_basisNo
required_schedulesNo
applicable_deadlineNo
extended_filing_deadlineNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, yet the description adds real substance: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, a browser-delegation URL is returned under compute:'browser', and an AP2 artifact with execution_hash is exported. This is genuine behavioral context beyond the annotations, though it omits error/failure semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identity is front-loaded, which is good, but the body is bloated with infrastructure boilerplate (Cloudflare Workers, registered kernels, an inline fv-status hash URL) that does not help an agent select or invoke the tool. The compute explanation is redundant with the schema, so several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the behavioral/data-handling coverage is decent. However, for a compliance-validation tool in a crowded sibling space, the description omits what the validation actually checks and any usage/selection guidance, leaving meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters, and the description's account of compute modes ('auto'/'server'/'browser', gpu delegation) largely restates the compute field's own schema description. It adds little beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause 'ERISA Form 5500 Schedule Validator' names a verb (validate) and a resource (Form 5500 schedules), but the rest of the description is compute-node plumbing rather than elaboration of what is actually validated. It does not specify which schedules or checks are performed, and it offers no differentiation from the many other validate_* siblings. Purpose is recognizable but thin relative to the title it restates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives (e.g. other Form 5500 or ERISA-adjacent validators). The compute-mode guidance is about execution routing, not about task selection. An agent gets no exclusion or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_fsma204_cteFSMA 204 Critical Tracking Event (CTE) ValidatorC
Read-onlyIdempotent
Inspect

FSMA 204 Critical Tracking Event (CTE) Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-119-traceability-lot-code-linker. Open at: https://ainumbers.co/chaingraph/art-118-fsma204-cte-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cte_typeNo
ftl_foodNo
cte_validNo
missing_kdesNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description goes further by disclosing compute placement semantics (server vs. browser delegation, gpu:true always delegating) and, importantly, that inputs are processed transiently and never stored or logged. It also notes the AP2 artifact with execution_hash and the offline-verifiable FV-status receipt, which are real behavioral facts an agent cannot derive from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool name is front-loaded, but roughly two-thirds of the text is family-wide boilerplate about OpenChainGraph, compute binding, and FV-status receipts that carries no tool-specific signal. Sentences are long and contain repetition (e.g., 'Deterministic OpenChainGraph compute node' on top of a near-duplicate framing clause).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so return values and side effects need not be re-explained, and the description does add data-retention and chaining context. What is missing is the tool's decision semantics — what a valid vs. invalid CTE looks like, and what a caller should supply in policy_parameters — which leaves the definition thin for a compliance validator.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all four parameters, including the compute enum and the parent_hashes/parent_tool_ids pairing, so the baseline is 3. The description's restatement of the compute modes largely duplicates the schema text and adds nothing new; it also never hints at what keys belong in the opaque policy_parameters object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The banner names the tool as an 'FSMA 204 Critical Tracking Event (CTE) Validator', so the resource and the act of validating are identifiable, and the FSMA 204 domain separates it from generic 'validate_*' siblings. However, the prose never states what the validation actually checks (which KDEs, lot codes, traceability hops) — it immediately pivots to compute-node plumbing that is identical across the whole family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage instruction is 'Use synthetic or anonymised inputs only', which is a data-handling constraint rather than when-to-use guidance. Nothing says which CTE records are in scope, when a firm must validate them, or why an agent would pick this over the traceability-lot-code linker sibling it feeds.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_fund_collateralTokenized Fund Collateral ValidatorB
Read-onlyIdempotent
Inspect

Tokenized Fund Collateral Validator: OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 505-tokenized-collateral-eligibility-checker. Open at: https://ainumbers.co/tools/514-tokenized-fund-collateral-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hqla_tierYes
eligibilityYes
haircut_appliedYes
adjusted_collateral_valueYes

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent/non-destructive profile, and the description adds genuinely new behavior: compute:auto runs server-side on Cloudflare Workers while compute:browser returns a delegation URL, gpu:true always delegates, inputs are transient and not retained, and an AP2 artifact with execution_hash is exported. It also warns to use synthetic/anonymised inputs. That is meaningful operational context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It front-loads the tool identity, but a large share of the text is provenance boilerplate (the ainumbers.co URL and the long fv-status hex hash) that does not help an agent select or call the tool. The useful compute/privacy content is buried mid-paragraph among infrastructure noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, a full input schema and an output schema, the safety and return-value burdens are largely covered. What is missing is the substantive part an agent still needs: what collateral decision function is being run and what policy_parameters fields are expected — the description punts that to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description only restates the compute modes and says 'see the tool's manifest for field names' for policy_parameters, adding essentially no parsing detail beyond what structured data provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name indicate it validates tokenized fund collateral, and the description pins down the node identity (collateral_mandate) and its upstream dependency (505-tokenized-collateral-eligibility-checker). But it never states plainly what the validation decides or returns — it leads with execution-infrastructure boilerplate instead of 'validates that a tokenized fund token satisfies collateral mandate criteria'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use/when-not, and no comparison to the many sibling validators such as check_tokenized_collateral_eligibility, validate_collateral_swap_eligibility, or compute_stock_token_collateral_haircut. The only directional hint is that it consumes artifacts from the 505-eligibility-checker, which implies sequence but not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_ifrs17_csm_rollforwardIFRS 17 CSM Roll-Forward ValidatorB
Read-onlyIdempotent
Inspect

IFRS 17 CSM Roll-Forward Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-177-ifrs17-measurement-model-classifier. Output feeds: art-179-ifrs17-risk-adjustment-checker. Open at: https://ainumbers.co/chaingraph/art-178-ifrs17-csm-rollforward-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
onerousNo
csm_validNo
closing_csmNo
opening_csmNo
fx_adjustmentsNo
loss_componentNo
new_business_csmNo
release_to_profitNo
interest_accretionNo
experience_adjustmentsNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds genuinely useful behavior: auto/server/browser compute modes, transient processing with no logging or retention, a synthetic-inputs-only constraint, and export of an AP2 artifact carrying execution_hash for provenance. This is real context beyond the annotations, though return/pagination behavior is handled by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense metadata dump rather than a purpose-first description: compute-binding mechanics, chaining, retention policy, artifact export, an access URL and an FV-status path all arrive before any statement of what is validated. It is not front-loaded and much of the content reads as infrastructure boilerplate rather than tool-selection signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter compliance compute node with nested objects and an output schema, the description covers compute binding, chaining, data handling, and provenance adequately, and the output schema covers return values. The notable gap is that the actual validation logic and the field names for policy_parameters are deferred to an external manifest, leaving the agent without the decision-function semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode prose largely duplicates the schema's own compute description and adds nothing about parent_hashes ordering or the manifest-deferred policy_parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('IFRS 17 CSM Roll-Forward Validator') and labels itself a compliance_mandate compute node, but never explains what the roll-forward validation actually checks or how it differs from nearby siblings like check_ifrs17_risk_adjustment, classify_ifrs17_measurement_model, or reconcile_sii_ifrs17. Its position in the chain (consumes art-177, feeds art-179) hints at its role, but the core purpose is left to the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the description discloses that it consumes the upstream measurement-model-classifier artifact and feeds the risk-adjustment checker, which suggests where in the pipeline it belongs. However, there is no explicit when-to-use guidance, no prerequisites, and no comparison against alternative IFRS 17 tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_input_attestationsValidate ChainGraph input attestationsA
Read-onlyIdempotent
Inspect

Verify an artifact's input_attestations[] (ChainGraph Standard §23): per RFC 6901 pointer, checks the attested value resolves inside policy_parameters and its digest binding matches, then verifies each type along its own path -- vc-2.0 via the shipped §16/§13.11 Data Integrity proof, rfc3161-snapshot via the same §20 rfc3161-tst verifier (no second RFC 3161 implementation), c2pa-manifest structurally (hard-binding digest match), zktls structurally-only (reported verifiable:"external" -- OCG never treats it as confirmed). Returns one { pointer, type, structural, verifiable } record per entry. Pure client-safe compute, zero network.

ParametersJSON Schema
NameRequiredDescriptionDefault
artifactNoA full ChainGraph artifact envelope carrying input_attestations[] and policy_parameters.
policy_parametersNoArtifact policy_parameters (if not passing a full artifact).
input_attestationsNoThe input_attestations[] array (if not passing a full artifact).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description aligns with annotations (readOnlyHint, idempotentHint, destructiveHint=false) and adds 'Pure client-safe compute, zero network.' It also discloses limitations, such as OCG never treating zktls as confirmed and that rfc3161-snapshot reuses the same verifier. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single, dense paragraph with no fluff. It front-loads the main action, then lists verification steps for each attestation type, and ends with return format and safety note. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return record structure ({ pointer, type, structural, verifiable }). It covers all attestation types and verification approaches. Could be slightly more explicit about error states, but overall sufficient for an agent to understand input, behavior, and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The tool description reinforces parameter usage (e.g., artifact, policy_parameters, input_attestations) but does not add significant new parameter-level semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it verifies an artifact's input_attestations[] per ChainGraph Standard §23, details specific checks for each attestation type, and describes the return format. This distinguishes it from sibling validation tools like validate_c2pa_manifest or validate_private_inputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly defines its scope by specifying the artifact and attestation context. While it does not explicitly state when to use vs alternatives, the detailed verification logic makes it clear this is the comprehensive validator for ChainGraph input attestations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_mcp_authorization_metadataMCP Authorization Metadata Validator (RFC 9728)A
Read-onlyIdempotent
Inspect

MCP Authorization Metadata Validator (RFC 9728): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-147-mcp-server-identity-attestation-validator. Output feeds: art-149-mcp-registry-entry-conformance. Open at: https://ainumbers.co/chaingraph/art-148-mcp-authorization-metadata-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
missingNo
bearer_okNo
resource_okNo
scope_countNo
metadata_validNo
auth_server_countNo

TDQS

A3.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations' read-only, idempotent, non-destructive, closed-world profile, the description discloses compute execution modes, server-side Worker versus browser delegation, gpu:true behavior, transient non-retention of inputs, and AP2 artifact export with execution_hash. It also states upstream consumption and downstream feeding, all of which meaningfully inform invocation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description is bloated with repetition such as stating 'OpenChainGraph compute node' twice, plus a long FV-status hash and snapshot caveat that do not help an agent select or invoke the tool. The chain-provenance and URL details dilute the core validator purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema and annotations, the description supplies enough context about compute behavior, provenance chaining, privacy handling, and artifact output for an agent to call the tool. However, it omits any explanation of what constitutes valid versus invalid authorization metadata and does not guide tool selection among alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the compute enum and parent hash fields. The description reinforces compute-mode behavior but adds no parameter syntax or semantics beyond what is already structured in the schema, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: validating MCP authorization metadata under RFC 9728. It also distinguishes itself through chain position by naming the upstream art-147 identity-attestation validator and the downstream art-149 registry-entry conformance tool, though it does not explicitly compare itself to sibling validators like validate_mcp_server_identity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives compute-mode behavior and a synthetic-input constraint, but it never states when to use this tool versus alternatives. It does not name exclusions or sibling tools that might be selected instead, despite many related MCP validation tools being available.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_mcp_server_identityMCP Server Identity Attestation ValidatorB
Read-onlyIdempotent
Inspect

MCP Server Identity Attestation Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-148-mcp-authorization-metadata-validator. Open at: https://ainumbers.co/chaingraph/art-147-mcp-server-identity-attestation-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
missingNo
attestedNo
has_issuerNo
has_subjectNo
identity_validNo
has_server_infoNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. Beyond that, the description discloses genuinely useful behavior: inputs are processed transiently and not stored/logged/retained, compute defaults to server-side Cloudflare Workers for gpu:false nodes with registered kernels, gpu:true always delegates to the browser, and the export carries an execution_hash for chain provenance. These are traits annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is dense and information-rich for a complex compute/provenance tool, but front-loading is weak: the opening sentence restates the name instead of stating the operation, and the trailing FV-status sentence embeds a long hash and a 'snapshot, not a subscription' disclaimer that does not help tool selection. Some clauses clearly earn their place (transient processing, compute binding); others are meta-noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover the safety profile; the description does supply compute, privacy and provenance context. What is missing is the one thing an agent needs most for selection: what identity attestation is being validated and how this differs from the many sibling MCP validators. Adequate operationally, incomplete functionally.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all four parameters, including the compute enum and the parent_hashes/parent_tool_ids chaining pairs, so baseline is 3. The description's compute-mode discussion largely duplicates the schema's own enumeration and adds nothing about parent_hashes, parent_tool_ids, or policy_parameters beyond 'see the manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title identify the resource (MCP server identity attestation), but the description itself never states what the tool actually validates — it opens with a restatement of the title and then turns to compute-mode plumbing and provenance metadata. It does say it 'Exports an AP2 artifact with execution_hash', which hints at output, yet the core verb+object of the validation remains unstated. An agent can guess the domain but not the concrete operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance and never distinguishes this tool from the many adjacent siblings (validate_mcp_server_json, check_mcp_registry_entry, lint_mcp_server_conformance, validate_a2a_trust_chain, validate_mcp_authorization_metadata). The one constraint present, 'Use synthetic or anonymised inputs only', is an input-hygiene rule, not a selection rule. Only the 'Output feeds: art-148-...' line implies a pipeline position.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_mcp_server_jsonMCP server.json Validator & Registry-Ready Skeleton GeneratorA
Read-onlyIdempotent
Inspect

Validate an MCP server.json against the 2025-12-11 schema and the official registry publishing rules; returns findings, a registry-readiness score, and an optional compliant skeleton. Use when a developer wants to check a server.json before publishing to the MCP Registry. Renders the interactive AINumbers tool as a widget; inputs are applied via the AIN Bridge and the tool runs client-side (zero PII, zero network).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoMap of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
findingsNo
skeletonNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral context: the tool renders an interactive widget, runs client-side via AIN Bridge, zero PII, zero network. This goes beyond annotations by explaining execution model and privacy characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: purpose, usage, execution behavior. Each sentence adds value with no redundancy. Front-loaded with primary action and resource, then context, then behavioral detail. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, output schema, and annotations, the description covers purpose, usage, execution (widget, client-side, privacy), and output types (findings, score, skeleton). It lacks detail on the compliant skeleton generation but is largely complete for a focused validation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter 'inputs' described in the schema as a map of tool input element IDs. The description mentions inputs are applied via AIN Bridge prefill, adding limited context. No detailed semantics about required structure, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates MCP server.json against a specific schema and registry rules, returning findings, score, and optional skeleton. It verb 'validate' and resource 'server.json' are explicit, and the use case (pre-publishing check) distinguishes it from sibling validation tools for other MCP artifacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the usage context: 'Use when a developer wants to check a server.json before publishing to the MCP Registry.' This provides clear context but does not list exclusions or alternative tools, though the niche is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_mcp_task_lifecycleMCP Task Lifecycle State Machine ValidatorC
Read-onlyIdempotent
Inspect

MCP Task Lifecycle State Machine Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-151-agent-obo-mandate-validator. Open at: https://ainumbers.co/chaingraph/art-152-mcp-task-lifecycle-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lifecycle_validNo
transition_countNo
illegal_transitionsNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real behavioral context on top: deterministic execution, the compute:"auto"/"browser" delegation behavior and browser-URL return, transient non-retained input processing, and AP2 artifact export with execution_hash for provenance. Most of this is family-level boilerplate rather than tool-specific behavior, but it is genuinely additive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense block where the actual purpose is never front-loaded; the second sentence dives into server-side/browser compute binding rather than what is being validated. The trailing FV-status hash and URL consume substantial space with marginal selection value, and much of the wording is repeated verbatim across sibling tools.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, but the description omits the one thing an agent needs: what this validator actually verifies and what the free-form policy_parameters object must contain. For a validation tool with a nested open-ended parameter, deferring everything to an off-page manifest leaves a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, including the compute enum semantics. The description restates the default and browser-delegation behavior without adding syntax or field-level meaning, and it defers policy_parameters contents entirely to 'See the tool's manifest.' Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a specific verb and resource (validate the MCP task lifecycle state machine), so the broad purpose is inferable. But the description body never explains what the validation actually checks — transition sequences, task object shape, or pass/fail criteria — and instead spends its sentences on OpenChainGraph compute plumbing. No sibling differentiation beyond the unique name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this validator versus related siblings like validate_emir_lifecycle_event or validate_tokenized_security_lifecycle. The only usage-adjacent text is a constraint ('Use synthetic or anonymised inputs only') and an upstream artifact reference (art-151-agent-obo-mandate-validator), which hints at chaining but not at tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_mletr_recordMLETR / eBL Conformance & Enforceability ValidatorC
Read-onlyIdempotent
Inspect

MLETR / eBL Conformance & Enforceability Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-52-digital-trade-fit-diagnostic. Output feeds: 510-digital-asset-regulatory-classifier, cry-04-merkle-batch-verifier, ml-02-credit-default-risk-scorer. Open at: https://ainumbers.co/chaingraph/art-53-mletr-ebl-conformance-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
test_resultsNo
corridor_matrixNo
conformance_gradeNo
conformance_scoreNo
status_table_asofNo
enforceability_tierNo
remediation_checklistNo
governing_law_recommendationNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: compute-mode delegation semantics (auto/server/browser, gpu:true always delegating), transient processing with no storage or logging, a synthetic-inputs-only constraint, and an exported AP2 artifact carrying execution_hash for provenance. What it still omits is what the validator actually evaluates or how failures are reported.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a dense wall of platform boilerplate (node type, FV-status hash, artifact URLs, downstream feed lists) that does not help an agent select or invoke the tool correctly. Front-loading the title before the mechanics is fine, but most sentences do not earn their place relative to the tool's actual job.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover safety, so return-value and permission concerns are handled. The description supplies chain provenance context and data-handling policy, which matches the platform's complexity, but it leaves a real gap: nothing explains what an MLETR/eBL record must satisfy for the validator to pass, even though policy_parameters is an open nested object whose fields the description explicitly defers to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (including compute modes and parent_hashes/parent_tool_ids pairing) are already documented in the schema. The description echoes the compute mode semantics but adds no format, ordering, or policy_parameters field detail beyond what the schema provides, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('MLETR / eBL Conformance & Enforceability Validator') and then spends its length on platform mechanics rather than saying what conformance is checked. It never distinguishes itself from closely related siblings such as check_digital_trade_rules, run_digital_trade_fit, or lookup_mletr_jurisdiction_adoption, leaving the agent to guess which validator applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no named alternative. The only routing hint is the implicit pipeline statement ('Consumes upstream artifacts from: art-52-digital-trade-fit-diagnostic'), which tells the agent about ordering but not about when this tool is the right choice over other trade/MLETR tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_mt700_lc_fieldsMT700 LC Field ValidatorC
Read-onlyIdempotent
Inspect

MT700 LC Field Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-474-validate-mt700-lc-fields.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
errorsNo
verdictNo
warningsNo
compliantNo
error_countNo
field_resultsNo
warning_countNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely useful context beyond them: transient processing with no storage/logging, a synthetic-inputs-only requirement, AP2 artifact emission with execution_hash, and an offline-verifiable FV-status receipt. That is real behavioral value, though the compute-mode text largely restates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dominated by platform boilerplate (compute binding, AP2 export, FV-status URL and hash) with the tool's actual purpose stated only in the opening fragment. Front-loading is poor and several sentences serve infrastructure rather than selection or invocation of this specific validator.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a compliance validation tool the description never says what it validates — which MT700 fields, against which rules, or what a failure looks like. The platform contract is covered fully while the domain substance an agent needs to invoke it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation duplicates the schema's own enum description and adds no syntax or semantics beyond it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title establish the verb+resource (validate + MT700 LC fields), and the description repeats 'MT700 LC Field Validator', but the body then pivots entirely to OpenChainGraph compute plumbing rather than what the validation actually checks. An agent learns it is a compliance validator but not which MT700 fields or rules are validated, and no sibling (e.g. examine_lc_document_presentation, validate_slate_report_fields) is distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on compute mode ('auto' vs 'browser'), which is execution behavior rather than tool selection. Nothing says when to reach for this validator versus the many other validate_*/check_* siblings, and no prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_nft_metadata_art209NFT Metadata ValidatorB
Read-onlyIdempotent
Inspect

NFT Metadata Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-209-nft-metadata-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
checksYes
all_passYes
disclaimerYes
fail_countYes
warn_countYes
field_countYes
required_passYes

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real value beyond them: inputs are processed transiently and not logged or retained, compute:"auto" resolves server-side only for gpu:false nodes with a registered kernel, compute:"browser" returns a delegation URL, and an AP2 artifact with execution_hash is exported. It also discloses that the FV-status is a verifiable offline snapshot rather than a live subscription — genuinely useful operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded reasonably well, but there is redundancy ('OpenChainGraph compute node' immediately restated as 'Deterministic OpenChainGraph compute node') and the closing sentence stacks a raw URL with a 64-character hash and meta-commentary about fetching the file. Roughly half the text serves platform boilerplate rather than the specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the operational side (compute modes, privacy, provenance, artifact export) is covered adequately. What is missing is the domain core: the NFT metadata checks and the policy_parameters contract, which are punted to an external HTML page and an unseen manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description's compute-mode sentence largely restates what the compute enum already documents. policy_parameters is explicitly deferred to an external manifest ('See the tool's manifest for field names'), so the description adds no field-level semantics of its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause name the resource ('NFT Metadata Validator', art-209 compliance_mandate), but the description never states what the tool actually validates or what rules/predicates it applies. Everything after the first sentence describes OpenChainGraph platform mechanics (compute routing, provenance, receipt URL), so an agent knows the packaging but not the decision being made. No sibling-contrast is provided despite a very large sibling set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no trigger conditions, and no named alternatives for distinguishing this from the other hundreds of validate_* tools. The only normative statement is the input-hygiene constraint ('Use synthetic or anonymised inputs only'), which is a restriction, not a routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_openids_homeowners_recordopenIDS Homeowners Record ValidatorC
Read-onlyIdempotent
Inspect

openIDS Homeowners Record Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-256-validate-openids-homeowners-record.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorsNo
pii_noteNo
warningsNo
error_countNo
record_validNo
table_sourceNo
warning_countNo
section_resultsNo
not_legal_adviceNo
pii_fields_foundNo
regulatory_basisNo
sections_presentNo
standard_versionNo
sections_requiredNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, and the description usefully adds that inputs are processed transiently with no storage or logging, that an AP2 artifact with execution_hash is exported, and that gpu:true nodes always delegate to the browser. It does not contradict the readOnly annotation, and this is meaningful context beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The title is redundantly repeated as the first clause and again paraphrased as 'Deterministic OpenChainGraph compute node'. The trailing FV-status sentence with a long URL and 64-char hash is information-dense but poorly integrated, making the whole entry feel padded around a missing core.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema and annotations exist, so return format and safety are covered, but the description omits the one thing that matters most: what records are validated and against which rule set. For a compliance_mandate compute node with 4 params, this leaves the agent unable to judge applicability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented by the schema, including the compute enum and the parent_hashes/parent_tool_ids ordering rule. The description repeats the compute semantics and defers policy_parameters to 'the tool's manifest', adding little beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what a homeowners record validation actually checks, what a valid vs invalid record looks like, or what 'openIDS' resolves to. It restates the title and then pivots entirely to compute-node infrastructure (compute modes, artifact export, provenance), so an agent cannot distinguish the substantive purpose from dozens of sibling validate_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this validator versus alternatives such as validate_openvex_statement, validate_mletr_record, or the other record validators. The compute-mode explanation ('auto' vs 'browser') describes how execution happens, not when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_openvex_statementOpenVEX Statement ValidatorC
Read-onlyIdempotent
Inspect

OpenVEX Statement Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-136-slsa-provenance-verifier. Open at: https://ainumbers.co/chaingraph/art-137-openvex-statement-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
vex_validNo
context_okNo
statement_countNo
invalid_statementsNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuine behavioral context beyond them: the compute:'auto'/'server'/'browser' delegation logic, that gpu:true always delegates to the browser, that inputs are processed transiently and not stored/logged, and that it exports an AP2 artifact with execution_hash. These are real operational traits not derivable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is front-loaded appropriately with the title, but it is a single dense run-on block mixing compute modes, privacy claims, provenance, a URL, and an FV-status hash. The infrastructure metadata and long hash are arguably noise for an agent trying to decide whether to call the tool, though the structure is at least ordered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers compute modes, chaining/upstream inputs, privacy, and artifact export. The main gap is that it never explains what the validation itself checks or the shape of policy_parameters, deferring to 'the tool's manifest'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely echoes the compute semantics already in the schema and adds no field-level meaning beyond it, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('OpenVEX Statement Validator') and then pivots entirely to OpenChainGraph infrastructure boilerplate. Apart from the name, nothing states what the tool actually validates, against what spec/rules, or how it differs from siblings like validate_spdx_sbom or validate_cyclonedx_sbom. This is effectively a tautological restatement of the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no routing away from alternatives, despite many similarly named validate_* siblings. The only usage-adjacent line names an upstream artifact source ('art-136-slsa-provenance-verifier'), which hints at chaining order but not when an agent should select this tool over another validator.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_pacs008_party_completenesspacs.008 Party Completeness ValidatorB
Read-onlyIdempotent
Inspect

pacs.008 Party Completeness Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-241-cbpr-structured-address-linter. Output feeds: art-246-lei-payment-binding-linter. Open at: https://ainumbers.co/chaingraph/art-242-pacs008-party-completeness-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesNo
pii_noteNo
compliantNo
error_countNo
field_statusNo
table_sourceNo
table_versionNo
warning_countNo
disambiguationNo
cpmi_d218_scoreNo
regulatory_basisNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint/idempotentHint/destructiveHint/openWorldHint already declaring a safe, closed-world read, the description still adds meaningful behavior: determinism, transient processing with no storage/logging/retention, server-vs-browser compute delegation, and an exported AP2 artifact carrying execution_hash for chain provenance. That is substantive disclosure beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the tool name and node type, which is good, but the body is a run-on of duplicated compute-mode text (already in the schema) plus an appended FV-status hash receipt that reads as metadata rather than invocation guidance. It is functional rather than wasteful to the point of being unreadable, but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the compute/chaining/provenance context is well covered. What is missing is the domain semantics of the validation itself — an agent cannot tell what constitutes a passing vs failing pacs.008 party check, which for a compliance validator is a material gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema, including the compute enum and the parent_hashes/parent_tool_ids pairing rule. The description largely restates the compute-mode behavior and adds no syntax or constraint detail the schema lacks, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as a deterministic OpenChainGraph compute node performing pacs.008 party-completeness validation, but never explains what 'completeness' actually checks (which party fields, which rule set). The bulk of the text is infrastructural boilerplate about compute binding and provenance, so the core purpose is only minimally conveyed by the name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states relative position in a pipeline (consumes art-241 output, feeds art-246), which implies usage context, but there is no explicit when-to-use/when-not guidance and no differentiation from the many sibling validators. The only actionable guidance is 'Use synthetic or anonymised inputs only,' which is an input constraint rather than usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_private_inputsValidate ChainGraph private-input commitmentsA
Read-onlyIdempotent
Inspect

Verify an artifact's private_inputs[] (ChainGraph Standard §25 ocg-private-input@1) WITHOUT ever seeing the plaintext witness: per RFC 6901 pointer, checks the pointed value inside policy_parameters IS the declared sha256-salted@1 commitment (never the plaintext, §25.2), that the commitment scheme is known, and -- when a §18 compute_proof is present -- that its journal commits the same commitment and binds output_payload. Optionally accepts an out-of-band {pointer, salt, input_value} disclosure package (authorized-verifier path) and recomputes sha256(salt || cgCanon(input_value)) to confirm it equals the commitment. Returns one {pointer, verifiable} record per entry: "proof-only" | "disclosed-verified" | "commitment-only" (no proof yet -- structural + plaintext-exclusion only) | "failed". Pure client-safe compute, zero network, never requires the plaintext.

ParametersJSON Schema
NameRequiredDescriptionDefault
artifactNoA full ChainGraph artifact envelope carrying private_inputs[], policy_parameters, and optionally output_payload + audit_signature.compute_proof.
disclosuresNoOPTIONAL authorized-verifier disclosure packages, keyed by pointer, for the disclosed-verified path.
compute_proofNoaudit_signature.compute_proof (if not passing a full artifact).
output_payloadNoArtifact output_payload (if not passing a full artifact).
private_inputsNoThe private_inputs[] array (if not passing a full artifact).
policy_parametersNoArtifact policy_parameters (if not passing a full artifact).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context: 'Pure client-safe compute, zero network, never requires the plaintext.' It explains the verification logic and that no state mutation occurs, going beyond the annotations. No contradiction is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose but is long and dense, containing many technical specifics (RFC 6901, sha256-salted, §25.2, etc.). While every sentence contributes to completeness, the length may overwhelm. It could benefit from structuring into bullet points for easier parsing, but it is not excessively verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, nested objects, no output schema), the description covers the essential aspects: input specification, verification logic, optional disclosure path, and return format. It describes the possible return values (proof-only, disclosed-verified, etc.). There are minor gaps (e.g., error handling), but overall it provides sufficient context for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description enriches parameter understanding. It explains that 'artifact' is the full ChainGraph envelope and that other parameters (e.g., compute_proof, output_payload) are optional alternatives. It clarifies the 'disclosures' parameter as authorized-verifier packages. This adds meaning beyond the schema's property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: verifying ChainGraph private-input commitments without seeing the plaintext. It specifies the verification logic, optional disclosure path, and return values. This distinguishes it from other 'validate_' sibling tools, which deal with different aspects (e.g., agent cards, mandates). The verb 'validate' is specific to the resource 'private_inputs[]' and the standard (§25 ocg-private-input@1).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any explicit guidance on when to use this tool versus alternative validation tools. While the technical depth implies its domain, there is no 'use this for' or 'avoid when' advice. The sibling list includes many validate tools, but no distinction criteria are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_pvp_settlementMulti-Currency PvP ValidatorB
Read-onlyIdempotent
Inspect

Multi-Currency PvP Validator: OpenChainGraph compute node (settlement_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 507-canton-dvp-atomicity-validator, 505-tokenized-collateral-eligibility-checker. Open at: https://ainumbers.co/tools/511-multi-currency-pvp-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
has_canton_legNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, yet the description adds meaningful traits beyond them: inputs are processed transiently and not stored, logged or retained, and the tool exports an AP2 artifact carrying execution_hash for chain provenance. The compute-mode semantics (server kernel execution vs browser delegation URL) further clarify side effects the annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, but the paragraph is dense and includes infra metadata (a tool URL and a long FV-status hash path with a snapshot disclaimer) that adds bulk without helping selection or invocation. Several compute-mode clauses restate schema content, diluting the actionable signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the annotations plus the data-retention and provenance statements cover safety and artifact behavior well. What remains thin is the actual validation semantics of the decision function, which the agent must infer from the title and upstream-consumer list rather than from the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the four parameters are already documented, and the description largely repeats compute-mode behavior and the parent_hashes chaining that the schema states. It adds minor value (the auto default for gpu:false kernels, gpu:true always delegating) but does not explain policy_parameters field names, deferring to 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title 'Multi-Currency PvP Validator' and the label 'settlement_mandate' identify a validation resource, and the description names upstream artifacts it consumes and chains from (507-canton-dvp-atomicity-validator, 505-tokenized-collateral-eligibility-checker). However, the body of the description spends most of its space on compute-binding mechanics and never plainly states what the settlement validation actually checks, so the agent gets the category but not the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on compute-mode selection (auto vs browser vs server, gpu:true always delegates) and a directive to use only synthetic/anonymised inputs, which is useful. But there is no statement of when to reach for this tool versus sibling validators, and no prerequisites for chaining beyond a bare list of upstream tool ids.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_qfc_recordkeeping_fileQFC Part 371 Recordkeeping File ValidatorC
Read-onlyIdempotent
Inspect

QFC Part 371 Recordkeeping File Validator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-537-qfc-recordkeeping-file-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
boundaryNo
decisionNo
rationaleNo
as_of_dateNo
mismatchesNo
file_totalsNo
control_totalsNo
institution_refNo
totals_mismatchNo
qfc_code_handlingNo
identifier_saltingNo
supplied_row_countNo
conforming_row_countNo
file_structure_errorsNo
control_totals_suppliedNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/idempotentHint annotations, the description discloses real behavioral traits: inputs are processed transiently and not stored/logged, synthetic or anonymised inputs only, and the output exports an AP2 artifact with execution_hash. The compute-mode routing (server vs browser delegation, gpu:true always delegating) is also useful operational context, though it never says what a validation failure response looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with a title-like prefix but then spends most of its length on platform boilerplate, a documentation URL, and a long FV-status hash that an agent cannot act on. Repeated framing ('Deterministic OpenChainGraph compute node') and the trailing receipt fragment dilute the signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema and rich annotations cover the mechanical contract, but for a domain-specific compliance validator the description never explains what the recordkeeping file must contain or which policy_parameters fields matter, leaving the core task opaque. The privacy/compute details are present, but the substantive validation semantics are not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description only restates the compute-mode semantics already covered by the 'compute' enum description and adds nothing about the opaque policy_parameters object, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title 'QFC Part 371 Recordkeeping File Validator' gives a specific verb (validate) and resource (QFC Part 371 recordkeeping file), but the description body never states what the validation actually checks or what a valid record looks like. It instead leads with generic platform framing ('OpenChainGraph compute node (compliance_control)') that would fit almost any tool in this family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this validator versus alternatives. Siblings such as compute_recordkeeping_completeness_mapper or validate_fdic370_output_file are not referenced, and the description offers no trigger conditions, prerequisites, or exclusions for choosing this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_regf_call_frequencyReg F Call-Frequency Presumption ValidatorC
Read-onlyIdempotent
Inspect

Reg F Call-Frequency Presumption Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-403-check-debt-validation-notice. Open at: https://ainumbers.co/chaingraph/art-402-validate-regf-call-frequency.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
debtsNo
window_daysNo
debts_checkedNo
disambiguationNo
regulatory_basisNo
invalid_call_indicesNo
timezone_offset_minutes_appliedNo
debts_with_quiet_period_presumptionNo
debts_with_seven_in_seven_presumptionNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses genuinely useful traits: deterministic computation, transient input processing ('not stored, logged, or retained'), a 'synthetic or anonymised inputs only' constraint, and AP2 artifact emission with execution_hash for provenance. The compute-mode text largely duplicates the schema's compute parameter, but the privacy and provenance disclosures add real value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by infrastructure boilerplate (Cloudflare Workers kernels, browser delegation, an FV-status JSON URL and hash). It is front-loaded with the title but buries the actual tool semantics, and much of the content is redundant with the input schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists (so return values need not be described) and annotations cover the safety profile, the description never states what the decision function evaluates or what policy_parameters should contain, deferring to an external manifest. For a compliance-mandate validator among many sibling validators, this leaves the core purpose under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds no per-parameter meaning beyond the schema, and explicitly defers policy_parameters field names to an external manifest, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title state a verb+resource ('validate Reg F call-frequency presumption'), but the description text itself opens by restating the title and then never explains what the validation actually decides (e.g., the 7-in-7 call-frequency threshold under Reg F). An agent can guess the domain from the name but gets no substantive purpose from the description body.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only routing hint is 'Output feeds: art-403-check-debt-validation-notice', which is a downstream consumer, not a when-to-use-vs-alternative directive. No comparison to sibling tools like check_debt_validation_notice or other validate_* tools is offered, leaving usage entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_royalty_splitRoyalty Split ValidatorC
Read-onlyIdempotent
Inspect

Royalty Split Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-208-royalty-split-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sumYes
modeYes
rulesYes
validYes
cap_bpsYes
disclaimerYes
config_hashYes
recipient_countYes

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive behavior, but the description adds genuinely new behavioral facts: inputs are processed transiently and not stored/logged, synthetic or anonymised inputs are required, and an AP2 artifact with execution_hash is exported for chain provenance. These are material operational constraints an agent cannot infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is dominated by boilerplate (kernel registration, Cloudflare Workers, transient processing, FV-status) and ends with a raw URL and a 64-character hash inline. The actual task is never stated, so the front-loaded content is infrastructure rather than purpose — verbose without being informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. However, for a validation tool the description omits what is being validated and defers needed field detail to an external manifest ('See the tool's manifest for field names'), leaving the agent without the core semantic context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented, including the compute enum semantics. The description largely repeats the compute-mode explanation already in the schema and adds nothing about parent_hashes, parent_tool_ids, or policy_parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('Royalty Split Validator: OpenChainGraph compute node') and then only describes infrastructure (kernels, compute modes, artifact export). It never states what the tool actually validates — royalty split percentages, terms, or participants — nor how it differs from siblings like validate_commission_hierarchy or calculate_erc2981_royalty.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no named alternative. The only conditional prose concerns compute routing ('auto'/'browser'/'gpu:true'), which is parameter behavior, not task selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_signature_agent_cardSignature Agent Card ValidatorB
Read-onlyIdempotent
Inspect

Signature Agent Card Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-130-signature-directory-validator. Open at: https://ainumbers.co/chaingraph/art-131-signature-agent-card-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so safety is covered. The description adds genuinely useful behavior beyond that: compute:"auto" vs "browser" routing semantics, browser-delegation URLs, gpu:true always delegating, transient non-stored processing, and export of an AP2 artifact with execution_hash. It still omits what happens on validation failure and whether results are persisted as artifacts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and mostly one block, with the useful compute and data-handling facts front-loaded, but it drags in a long FV-status URL with a hash and a philosophical aside ('a snapshot, not a subscription...'). That trailing material is boilerplate most callers will not need, diluting the signal-to-noise ratio.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compute node with no output schema, the description covers execution modes, transient processing, provenance export, and an upstream dependency, which is reasonable. It is still incomplete on the core question a validator must answer — the validation semantics, what constitutes a pass/fail, and what the caller receives — and defers policy_parameters contents to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute mode behavior but adds nothing about parent hash ordering or policy_parameters field naming beyond what the schema says ('See the tool's manifest'). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name, title, and opening clause identify this as a Signature Agent Card validator running as an OpenChainGraph compute node, so the general function is graspable. However the body spends most of its words on compute routing, data handling, and artifact export rather than stating what is actually validated or against what rules. It never distinguishes itself from the many nearby validators (validate_signature_directory, validate_a2a_agent_card, verify_a2a_agent_card).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and no sibling is named as an alternative. The only usage directive is the constraint 'Use synthetic or anonymised inputs only', which is a safety rule rather than a routing rule. An agent must infer applicability purely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_signature_directoryHTTP Signatures Directory ValidatorB
Read-onlyIdempotent
Inspect

HTTP Signatures Directory Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-129-webbotauth-signature-verifier. Output feeds: art-131-signature-agent-card-validator. Open at: https://ainumbers.co/chaingraph/art-130-signature-directory-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover safety (readOnly, idempotent, non-destructive, closed-world), while the description adds substantial extra behavior: compute modes ('auto'/'server' server-side vs 'browser' client-side delegation), the gpu:true always-delegates rule, transient/no-log/no-retention data handling, a 'use synthetic inputs only' constraint, and the AP2 artifact with execution_hash export. These are meaningful operational traits the agent could not derive from the annotations, and none contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is one dense, front-loaded paragraph with useful material (compute modes, chaining, privacy) but also redundant clauses ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and heavy trailing material (a documentation URL and a long FV-status hash/snapshot note) of marginal value for invocation decisions. Mid-pack: informative but not tightly edited.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 4 parameters including a free-form nested policy_parameters object and no output schema, the description should describe what the tool returns; it only states that it 'exports an AP2 artifact with execution_hash' and otherwise punts field details to the manifest. The compute/privacy story is well covered, but the required-input shape and return payload remain underspecified for a node with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation duplicates the schema's 'compute' description rather than extending it, and it explicitly defers policy_parameters field names to 'the tool's manifest.' Baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title already state 'HTTP Signatures Directory Validator,' and the description largely restates it plus a category tag ('OpenChainGraph compute node (compliance_mandate)') and a redundant 'Deterministic OpenChainGraph compute node' clause. It never explains what the validation actually checks (signature directory contents, chain of trust, etc.), so the purpose stays at title-level. The upstream/downstream artifact references (art-129 -> art-130 -> art-131) do help place it in a pipeline, which keeps it above a pure tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, nor any named alternative among the many siblings (verify_webbotauth_signature, validate_signature_agent_card, check_jwks_pinned_directory). The 'Consumes upstream artifacts from art-129... Output feeds art-131' line implies pipeline position but not a selection rule. An agent must infer usage entirely from the chain references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_slate_report_fieldsSLATE Securities-Loan Report Field ValidatorC
Read-onlyIdempotent
Inspect

SLATE Securities-Loan Report Field Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-544-slate-report-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scope_noteNo
violationsNo
reports_validNo
reports_checkedNo
regulatory_basisNo
field_spec_versionNo
compliance_date_noteNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses that inputs are processed transiently and not stored or logged, that compute:"auto" may run server-side versus browser delegation, and that it exports an AP2 artifact with an execution_hash. These are genuine behavioral traits not derivable from the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description opens with a redundant restatement of the title, then spends most of its length on chain-infrastructure boilerplate, a raw URL, and a long FV-status hash. The content is not front-loaded with what the tool actually validates, and significant space is consumed by low-signal text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the privacy/compute/provenance context is covered. However, for a validation tool the description never conveys what constitutes a valid or invalid field or what a failure result means, leaving a real gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute, parent_hashes, parent_tool_ids, and policy_parameters fields are already documented in the schema. The description's compute-mode explanation duplicates the schema's own enum description without adding new semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence merely restates the name and title ("SLATE Securities-Loan Report Field Validator") and then pivots to infrastructure boilerplate about compute nodes. It never states what a SLATE securities-loan report field is, which fields are validated, or what rules are applied. An agent learns the tool exists but not what it does substantively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only actionable guidance is "Use synthetic or anonymised inputs only," which is a constraint rather than a when-to-use rule. No mention of when to choose this over sibling tools such as run_slate_reporting_fit, nor prerequisites for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_spdx_sbomSPDX SBOM Validator (EU CRA Annex I)C
Read-onlyIdempotent
Inspect

SPDX SBOM Validator (EU CRA Annex I): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-139-cra-annex1-completeness-checker. Open at: https://ainumbers.co/chaingraph/art-138-spdx-sbom-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatNo
sbom_validNo
spdx_versionNo
package_countNo
has_relationshipsNo
packages_missing_versionNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the description earns credit for going beyond them: deterministic execution, transient processing with no storage/logging/retention, an explicit instruction to use synthetic inputs, and the emission of an AP2 artifact with execution_hash for chain provenance. The compute-mode delegation behavior (server vs browser for gpu:true nodes) is also disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description opens with a verbatim restatement of the title, duplicates the compute-mode explanation already present in the schema, and closes with a long FV-status hash sentence and a raw URL whose value to an invoking agent is unclear. Front-loading is acceptable but several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the annotations plus the data-handling notes give a workable behavioral picture. However, for a validation tool the description never says what constitutes a successful validation or what policy_parameters should contain, leaving the core verification semantics to the manifest and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema itself carries the parameter burden and the baseline is 3. The description re-explains compute modes (already fully documented in the schema) but adds nothing about parent_hashes/parent_tool_ids chaining or about what policy_parameters fields actually are, deferring to 'the tool's manifest.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/name states a specific verb+resource (SPDX SBOM validation under EU CRA Annex I), but the description largely restates that title ('SPDX SBOM Validator (EU CRA Annex I)') and then pivots to infrastructure narrative rather than explaining what validation means. It does not differentiate this tool from closely-related siblings such as validate_cyclonedx_sbom or check_cra_annex1_completeness, beyond noting a downstream consumer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only explicit usage guidance is an input constraint ('Use synthetic or anonymised inputs only') and compute-mode mechanics, which are invocation details rather than when-to-use guidance. There is no statement of when this tool should be chosen over validate_cyclonedx_sbom or check_cra_annex1_completeness, nor any preconditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_tempo_token_complianceTempo Stablecoin Issuance ComplianceB
Read-onlyIdempotent
Inspect

Tempo Stablecoin Issuance Compliance: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-34-tempo-fit-diagnostic. Output feeds: art-06-genius-act-reserve-attestation, art-10-amla-transaction-typology-risk-scorer, art-38-tempo-onchain-aml. Open at: https://ainumbers.co/chaingraph/art-37-tempo-stablecoin-issuance.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
micaNo
geniusNo
verdictNo
fail_countNo
warn_countNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, so safety is covered; the description goes further with genuinely non-obvious behavior: transient processing with no storage/logging/retention, a mandate to use synthetic or anonymised inputs only, compute-mode routing (auto/server/browser, gpu:true always delegating), and an AP2 artifact export carrying execution_hash. These are real additions beyond the structured fields rather than restatements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compliance purpose is front-loaded, but the rest is a dense run-on packing infrastructure jargon, chain-provenance boilerplate, two URLs, and a full 64-character FV-status hash that yields almost nothing actionable. Several clauses duplicate the schema's compute-binding text, so the description is bloated relative to what it communicates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers data handling, compute routing, and chain dependencies. It is nonetheless incomplete on the single most important question for a compliance tool: what rule/condition is being checked and what a pass or fail means, which the description never addresses.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; the baseline is 3. The description largely echoes the compute-mode semantics that the schema states and gives no extra detail on parent_hashes ordering or policy_parameters field names (it defers to 'the tool's manifest'), so it adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It identifies itself as a Tempo stablecoin issuance compliance node and names the artifact chain it belongs to (consumes art-34-tempo-fit-diagnostic, feeds art-06/art-10/art-38), which sketches the domain. But it never states what compliance condition is actually validated or what the 'decision function' checks, so an agent cannot distinguish its job from siblings like validate_tempo_zone_disclosure, run_tempo_fit_diagnostic, or score_tempo_validator_readiness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied via the pipeline position: it says which upstream artifact it consumes and which downstream artifacts it feeds, which tells an agent where this sits in a workflow. There is no explicit when-to-use vs an alternative, no prerequisites beyond the 'synthetic inputs only' note, and no exclusion criteria against the many other tempo/validation siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_tempo_zone_disclosureTempo Zone Selective-Disclosure AttestationB
Read-onlyIdempotent
Inspect

Tempo Zone Selective-Disclosure Attestation: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-38-tempo-onchain-aml. Output feeds: cry-01-zk-compliance-proof-generator. Open at: https://ainumbers.co/chaingraph/art-39-tempo-zone-disclosure.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
verdictNo
use_caseNo
operator_nameNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the bar is lower, yet the description adds real behavioral context beyond them: inputs are processed transiently and 'not stored, logged, or retained', GPU nodes always delegate to the browser, execution is deterministic, and an AP2 artifact with execution_hash is exported. These are meaningful properties an agent cannot infer from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is front-loaded and structured, but it is bloated with internal-infrastructure detail (Cloudflare Workers, registered kernels, delegation URLs) and a full 64-character FV-status hash URL that does little for an agent deciding whether and how to call the tool. Several sentences do not earn their place in a tool-selection context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 100% schema coverage, full annotations, and an output schema, the description does not need to explain return values, and it does supply the provenance chain (consumes from art-38, feeds cry-01), compute behavior, and input constraints. It is largely sufficient for correct invocation, missing only explicit sibling routing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the compute enum which the description largely restates. The description adds the chaining concept (upstream parent hashes feeding provenance) but says nothing about parent_tool_ids or the policy_parameters object, so it stays at the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('Tempo Zone Selective-Disclosure Attestation') and identifies itself as an OpenChainGraph compute node that 'Exports an AP2 artifact with execution_hash for chain provenance.' However, it never states plainly what the computation actually validates or attests, so the core function is obscured behind infrastructure jargon; it also does not distinguish itself from look-alike siblings such as validate_canton_selective_disclosure or validate_tempo_token_compliance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the compute-mode choice (auto vs server vs browser) and imposes an input constraint ('Use synthetic or anonymised inputs only'), which implies usage. But it never says when to reach for this tool instead of an alternative sibling, nor states any precondition or when-not-to-use case, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_tfr_travel_rule_batchTFR Travel-Rule Batch ValidatorC
Read-onlyIdempotent
Inspect

TFR Travel-Rule Batch Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-98-mica-casp-fit-diagnostic. Output feeds: cry-04-merkle-batch-verifier. Open at: https://ainumbers.co/chaingraph/art-104-tfr-travel-rule-batch-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
tfr_noteNo
batch_sizeNo
merkle_rootNo
reference_versionNo
transfers_flaggedNo
batch_conformance_pctNo
unhosted_dd_required_countNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/non-destructive, consistent with the description), the description discloses meaningful behavior: transient processing with no storage, logging, or retention; the requirement for synthetic/anonymised inputs; the compute delegation semantics (browser delegation URL for compute:'browser', gpu:true always delegating); and the AP2 artifact with execution_hash. This goes well past what readOnlyHint and idempotentHint convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Structure is poor: the purpose is a bare title fragment buried behind boilerplate about Cloudflare Workers, GPU kernels, FV-status receipt hashes, and a documentation URL. Much of the text (offline receipt verification, snapshot-not-subscription) is unrelated to tool selection and crowds out the information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the safety profile, the remaining burden is chain/provenance context, which the description does supply (upstream and downstream artifact IDs, execution_hash export). However, it never explains what the travel-rule validation checks or what policy_parameters fields it expects, so an agent must consult the manifest anyway.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters are documented in the schema (compute enum, parent_hashes, parent_tool_ids, policy_parameters). The description only echoes the compute:'auto' default and server-side evaluation, adding no detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The specific verb+resource is only conveyed by restating the title ('TFR Travel-Rule Batch Validator'), which appears in the name already; the body of the description is dominated by compute-node plumbing ('OpenChainGraph compute node (compliance_mandate)') rather than what validation is performed. It does differentiate itself from siblings through the artifact chain (consumes art-98-mica-casp-fit-diagnostic, feeds cry-04-merkle-batch-verifier), which gives some sibling context, but an agent gets little sense of what is actually validated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this validator versus the many sibling validators (e.g. validate_emir_trade_report, validate_eudr_due_diligence_statement). The only usable instruction is 'Use synthetic or anonymised inputs only', which is a constraint rather than when-to-use. Compute-mode semantics are covered by the schema, not the prose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_tip20_memo_commitmentTIP-20 Memo/Commitment ValidatorC
Read-onlyIdempotent
Inspect

TIP-20 Memo/Commitment Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-390-tip20-memo-commitment-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
memo_hexNo
overall_validNo
memo_hex_validNo
invoice_locatorNo
memo_length_validNo
payload_commitmentNo
invoice_locator_matchNo
payload_commitment_matchNo
commitment_source_suppliedNo
invoice_locator_commitmentNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, non-openWorld, but the description adds genuinely useful behavior beyond them: transient input processing that is not stored/logged/retained, a 'use synthetic or anonymised inputs only' constraint, browser delegation behavior for compute modes, and export of an AP2 artifact with execution_hash for chain provenance. These are material traits an agent could not infer from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with the tool name, but the body is heavy boilerplate — privacy language, AP2 export, a marketing URL, and a long fv-status hash — much of which is not actionable for tool selection. It is not bloated to the point of unusability, but several sentences do not earn their place relative to a validator's core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the annotations cover the safety profile. However, for a validator the description never states what the validation decides or which policy_parameters matter, deferring entirely to an external manifest, which leaves a real gap in understanding the tool's core function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description largely echoes the compute-mode semantics already in the schema and defers the decision-function fields to 'the tool's manifest', so it adds little beyond the structured data. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('TIP-20 Memo/Commitment Validator') and tags it as a 'compute node (compliance_mandate)' but never explains what validating a TIP-20 memo/commitment actually means or what it checks for. It is essentially a tautology of the name plus infrastructure boilerplate, so an agent learns little about the resource semantics beyond the label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, despite many adjacent siblings (validate_tempo_token_compliance, screen_tip20_transfer_batch, validate_deposit_token_compliance). The compute-mode discussion is parameter configuration, not contextual usage advice, and no scenario or precondition is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_tokenized_security_lifecycleTokenized Security Lifecycle ValidatorC
Read-onlyIdempotent
Inspect

Tokenized Security Lifecycle Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: 510-digital-asset-regulatory-classifier. Open at: https://ainumbers.co/tools/512-tokenized-security-lifecycle-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictYes
all_gapsYes
event_matrixYes
critical_gapsYes
verdict_badgeYes

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly=true, idempotent=true, destructive=false, so the safety profile is already covered. The description adds substantive behavior beyond that: server-vs-browser compute delegation rules, gpu:true always delegating, transient processing that is not stored/logged/retained, and the export of an AP2 artifact carrying execution_hash for chain provenance. It does not contradict any annotation; it enriches them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute/provenance sentences are front-loaded and informative, but the description opens by restating the title and closes with a long promotional FV-status URL paragraph ('a snapshot, not a subscription; this receipt verifies offline...') that is largely filler for an invocation decision. Mid-density with noticeable waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return format needn't be explained, and the ops/compute/provenance behavior is reasonably covered. However, the core semantic question—what the validation checks and what inputs policy_parameters must supply—is left entirely to an external manifest, leaving the definition incomplete for correct invocation of a compliance-mandate validator.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description's mention of compute modes duplicates the schema's own description and adds no new syntax or format detail; for policy_parameters it explicitly defers to the manifest rather than adding meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title ('Tokenized Security Lifecycle Validator') plus infrastructure framing ('OpenChainGraph compute node (compliance_mandate)'). It never states what the tool actually validates about a tokenized security lifecycle—no specific verb+resource describing the validation performed, no indication of what makes a lifecycle pass or fail. An agent cannot distinguish its function from siblings like run_tokenized_settlement_fit or check_tokenized_collateral_eligibility based on this text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not-to-use, or routing to alternatives. The only guidance is a data-hygiene constraint ('Use synthetic or anonymised inputs only') and a note that it consumes upstream artifacts from 510-digital-asset-regulatory-classifier, which hints at sequencing but not selection. With hundreds of overlapping compliance/validation siblings, this omission is significant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_vida_einvoice_conformanceViDA EN 16931 E-Invoice Conformance ValidatorC
Read-onlyIdempotent
Inspect

ViDA EN 16931 E-Invoice Conformance Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-160-vida-drr-transaction-reporter. Open at: https://ainumbers.co/chaingraph/art-159-vida-einvoice-en16931-conformance-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds material context beyond that: transient processing, no storage/logging/retention, synthetic-input requirement, compute-versus-browser delegation semantics, and the export of an AP2 artifact carrying execution_hash for chain provenance. It does not contradict the annotations. It stops short of describing what a failing conformance result looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with the purpose (albeit tautologically) and each infra sentence is dense, but a large share is generic OpenChainGraph boilerplate that likely repeats verbatim across hundreds of sibling tools, and the FV-status hash/URL tail is low-signal for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should carry more of the return-shape burden; it only says an AP2 artifact with execution_hash is exported and feeds art-160-vida-drr-transaction-reporter. For a validator, the actual conformance verdict/rejection semantics and the meaning of policy_parameters contents are left to the manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes compute-mode behavior and alludes to execution_hash chaining but adds no format or syntax detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause is a verbatim restatement of the title, and the only added content is the domain tag '(compliance_mandate)'. Nothing explains what conformance criteria are actually checked or how this differs from close siblings like validate_einvoice_format, validate_einvoice_batch, or verify_einvoice_vat_calc. An agent learns the node exists but not what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a real constraint ('use synthetic or anonymised inputs only') and compute-mode selection rules, which is useful. But there is no when-to-use-this-vs-alternatives guidance against the many andere e-invoice validation tools in the sibling list, and no stated prerequisites for a conformance check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_w8_series_structuralW-8 Series Structural ValidatorC
Read-onlyIdempotent
Inspect

W-8 Series Structural Validator: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-268-compute-cdd-ownership-25pct. Open at: https://ainumbers.co/chaingraph/art-269-validate-w8-series-structural.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pii_noteNo
form_typeNo
violationsNo
table_sourceNo
table_versionNo
treaty_countryNo
chapter3_statusNo
treaty_rate_pctNo
violation_countNo
not_legal_adviceNo
regulatory_basisNo
days_until_expiryNo
treaty_rate_validNo
ch3_ch4_consistentNo
validity_window_okNo
form_ch3_compatibleNo
treaty_rate_expectedNo
validity_expiry_dateNo
chapter4_fatca_statusNo
is_structurally_validNo
statutory_withholding_rate_pctNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description still adds meaningful behavior beyond that: deterministic execution, the auto/browser server-vs-client computation model, transient processing with no storage or logging, and export of an AP2 artifact carrying execution_hash for chain provenance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening names the tool, but the remainder is verbose platform boilerplate (compute binding, FV-status snapshot URL, artifact links) that largely restates schema or platform-wide conventions. For a W-8 validator, very little of the length is devoted to what the tool specifically does, so the text is padded rather than front-loaded with substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations are rich, so return values and the safety profile need not be restated. However, for a domain-specific compliance validator the description leaves the actual validation logic opaque and gives no routing guidance, which is the main thing an agent still needs in order to select it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters already carry their own documentation, including the compute enum and parent_hashes/parent_tool_ids pairing. The description adds nothing about policy_parameters contents beyond deferring to 'the tool's manifest,' so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and name identify it as a W-8 series structural validator, so the verb and resource are discernible, but the description body never says what 'structural validation' of a W-8 actually checks or returns. Most of the text is platform plumbing (compute modes, chain provenance, FV status) rather than an explanation of the function, and it does not differentiate itself from the many other validate_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance and no named alternative among the large validate_* family. The only directional hint is a workflow dependency ('Consumes upstream artifacts from art-268-compute-cdd-ownership-25pct'), and 'Use synthetic or anonymised inputs only' is an input constraint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_x402_deferred_handshakex402 Deferred-Scheme Handshake ValidatorB
Read-onlyIdempotent
Inspect

x402 Deferred-Scheme Handshake Validator: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-393-x402-v2-migration-linter, art-129-webbotauth-signature-verifier. Output feeds: art-61-x402-batch-settlement-reconciler. Open at: https://ainumbers.co/chaingraph/art-394-x402-deferred-handshake-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
errorsNo
passesNo
verdictNo
findingsNo
warningsNo
scope_noteNo
settlement_reference_idNo
required_covered_componentsNo

TDQS

B3.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial context beyond them: transient processing with no storage/logging/retention, synthetic-input requirement, the auto/server/browser compute delegation rules, AP2 artifact export with execution_hash, and an offline-verifiable FV-status receipt. This is exactly the kind of behavioral disclosure annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-node boilerplate is repeated ('OpenChainGraph compute node' twice), and the trailing FV-status URL plus a 64-character hash consume a lot of space for a provenance footnote. The artifact-chain lines are front-loaded well, but the definition is padded with infrastructure boilerplate rather than validation specifics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and annotations plus the description cover safety, data handling, compute binding, and chain provenance. What is missing is a functional statement of what the handshake validation asserts and how upstream artifacts feed the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute enum is already fully documented in the schema, so the description's restatement of compute semantics adds little. It gestures at the parent_hash/parent_tool_id chaining only implicitly via the artifact-chain sentence. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title convey the resource (x402 deferred-scheme handshake) and the verb (validate), but the body opens with boilerplate — 'OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.' — and never functionally states what the validation actually checks. The artifact-chain lines (consumes from ... feeds to ...) give useful positioning, but the core purpose is inferred from the name rather than described.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to pick this over close siblings such as validate_a2a_x402_mandate, verify_kya_x402_scope, check_x402_domain_nonce_window, or lint_x402_v2_migration. It offers compute-mode mechanics and a data-handling caution ('Use synthetic or anonymised inputs only'), but nothing about the decision context or prerequisites for invoking it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vc_issueIssue a signed W3C Verifiable Credential 2.0AInspect

Composes and signs a W3C Verifiable Credential 2.0 with an eddsa-jcs-2022 Data Integrity proof over a fresh ephemeral did:key (generated per call, not reused). Returns the signed credential, an OCG Standard §23 vc-2.0 input-attestation block ready to embed in a ChainGraph chain's policy_parameters at the given pointer, and an OCG receipt of the issuance activity. The signature proves the claims were not altered after signing and that the did:key holder produced it -- it is not, by itself, identity assurance.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimsYesClaim key-value pairs for credentialSubject (required, at least one entry).
pointerNoRFC 6901 JSON pointer where the attestation's claims sit in a consuming chain's policy_parameters. Default: "/subject_claims".
subject_idNoCredential subject id (DID or any identifier string). Default: "did:example:subject".
valid_fromNoISO 8601 validFrom. Default: now.
valid_untilNoISO 8601 validUntil.
credential_typeNoType appended to VerifiableCredential (e.g. "MembershipCredential").

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (which are all false), the description discloses that a fresh ephemeral did:key is generated per call and not reused, and clarifies that the signature is not identity assurance. This provides useful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the primary action, then listing return values, then clarifying limitations. No fluff or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, output components, and a key limitation. However, it lacks details on the structure of the returned objects (e.g., signed credential format) and does not provide examples, which could help given the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters. The description adds minimal extra meaning beyond the schema (e.g., mentioning RFC 6901 for pointer but not detailing format). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it composes and signs a W3C Verifiable Credential 2.0 with a specific proof type (eddsa-jcs-2022) and key generation method (fresh ephemeral did:key). It distinguishes from siblings like sdjwt_issue by specifying the credential standard and proof type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for embedding in ChainGraph's policy_parameters but does not explicitly state when to use this tool over alternatives (e.g., sdjwt_issue) or when not to use it. No guidance on prerequisites or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_a2a_agent_cardA2A Agent Card Validator & Extension CheckerC
Read-onlyIdempotent
Inspect

A2A Agent Card Validator & Extension Checker: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-22-agentic-payments-protocol-comparator. Output feeds: art-18-mcp-developer-readiness-scorecard, art-26-x402-payload-decoder-flow-simulator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/art-25-a2a-agent-card-validator.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scoreNo
errorsNo
passesNo
verdictNo
findingsNo
warningsNo
has_signed_cardNo
has_ap2_extensionNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety bar is low; the description still adds real context beyond them. It discloses that inputs are processed transiently and not stored, logged or retained, that gpu:true nodes always delegate to the browser, and that the tool exports an AP2 artifact with an execution_hash for chain provenance. These are meaningful operational traits not captured by the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a dense run-on of platform, compute, retention, provenance and URL/status boilerplate, with the actual operation buried. Because it never front-loads what the tool validates, the reader must reconstruct purpose from the name and title. Substantial portions (FV-status hash, artifact URLs) do not help an agent decide or invoke.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but for a validator the description should still indicate what checks run (card structure, extensions, signatures?) and how the card is supplied. With 0 required parameters and policy_parameters left to an external manifest, an agent lacks what it needs to call this correctly versus the sibling validators.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; baseline 3 applies. The description echoes the compute-mode semantics but adds nothing new, and for policy_parameters — the field that must carry the agent card — it defers with 'See the tool's manifest for field names,' leaving the agent without the actual validation inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and title convey a specific verb+resource (validate an A2A agent card, including extensions), but the description body never actually says what the validation checks or what an A2A agent card is here. Instead it opens with platform boilerplate ('OpenChainGraph compute node (compliance_control)') that restates the product rather than the operation. It also fails to distinguish itself from close siblings such as validate_a2a_trust_chain, validate_a2a_x402_mandate, and validate_signature_agent_card.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to the many other A2A/agent-card validation tools in the sibling list. The only selection advice is operational (compute:'auto' vs 'browser'), which is about execution location, not task fit. Upstream/downstream artifact mentions hint at pipeline position but do not tell an agent when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_acdc_delegation_chainACDC Delegation Chain VerifierB
Read-onlyIdempotent
Inspect

ACDC Delegation Chain Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-284-did-webvh-log-verifier. Open at: https://ainumbers.co/chaingraph/art-285-acdc-delegation-chain-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validNo
chain_depthNo
edge_failuresNo
said_failuresNo
root_aid_matchedNo
revocation_status_reportedNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real behavioral context beyond them: deterministic server-side compute, transient processing with no storage/logging/retention, the synthetic-input-only constraint, and the exported AP2 artifact carrying an execution_hash for chain provenance. Only permission/auth requirements are left unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identity and privacy/retention facts are reasonably front-loaded, but the long compute-mode sentence duplicates the schema's own compute enum description, and the URL plus FV-status receipt line is dense operational boilerplate. Every sentence is defensible, yet roughly a third of the text restates structured fields rather than adding selection value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description still supplies the data-handling, determinism, compute-mode, and chaining context an agent needs to call it correctly, leaving only the conceptual meaning of ACDC delegation-chain verification unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents 'compute', 'parent_hashes', 'parent_tool_ids', and 'policy_parameters'; baseline is 3. The description mostly repeats the compute enum semantics and adds only a light hint that parent_hashes/upstream artifacts drive chain provenance, without meaningfully enriching parameter usage beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title ('ACDC Delegation Chain Verifier: OpenChainGraph compute node (compliance_mandate)') and then devotes most of its text to deployment/compute mechanics rather than what the verification actually checks. It never explains what an ACDC delegation chain is or what a passing/failing result means. The verb+resource identity comes from the name/title, not the description body, so this lands as adequate-but-vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit 'use this instead of X' guidance against the many sibling verify_* tools. The only routing hints are implicit: it 'Consumes upstream artifacts from: art-284-did-webvh-log-verifier' (ordering within a chain), the compute-mode default/browser behavior, and the constraint 'Use synthetic or anonymised inputs only'. These imply context but do not state when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_address_migration_batchISO 20022 Structured-Address Migration Batch VerifierB
Read-onlyIdempotent
Inspect

ISO 20022 Structured-Address Migration Batch Verifier: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2026-11-01 (SWIFT CBPR+ structured-address mandate — November 2026 (~5 months). Hardest deadline tool in suite by proximity.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-11-vop-batch-match-rate-analyser, art-08-en16931-einvoice-batch-validator, ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/rca-03-iso20022-address-migration-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
batch_summaryNo
failing_recordsNo
compliance_flagsNo
november_2026_readiness_pctNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real behavioral context: compute routing rules (auto/server/browser, gpu nodes always delegate, browser returns a delegation URL), a transient-processing/no-retention guarantee, and export of an AP2 artifact carrying execution_hash. What is missing is any disclosure of the verification's own behavior — what it checks, how a failed batch surfaces, or error handling for malformed input.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but a large share of the text is non-operational boilerplate: the marketing claim 'Hardest deadline tool in suite by proximity', a documentation URL, and an FV-status snapshot URL with a full 64-char hash. These paragraphs occupy significant space without helping an agent decide to call the tool or craft inputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the compute/chaining/artifact story is covered. For a verification tool with a free-form nested policy_parameters object, though, nothing tells the agent what a batch verification accepts or what constitutes a passing migration batch, which is the core decision the call supports.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description largely repeats the compute-mode semantics that the schema already states verbatim and adds nothing about policy_parameters field semantics (which it explicitly defers to 'the tool's manifest'). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific resource and function ('ISO 20022 Structured-Address Migration Batch Verifier') and classifies the node domain ('compliance_mandate'), so an agent knows this verifies structured-address migration readiness. However, it never distinguishes itself from near-identical siblings such as lint_cbpr_structured_address, lint_fedwire_structured_address, sweep_fedwire_addresses, or verify_migration_completeness, leaving the agent to guess which verifier applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the 2026-11-01 SWIFT CBPR+ mandate deadline signals when the tool matters, and 'Use synthetic or anonymised inputs only' constrains inputs. There is no explicit when-to-use condition, no statement of when NOT to use it, and no routing to an alternative sibling verifier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_anchored_extractAnchored Extract VerifierC
Read-onlyIdempotent
Inspect

Anchored Extract Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-286-anchored-extract-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
anchoredNo
escalationNo
not_provenNo
root_matchNo
anchor_noteNo
claimed_rootNo
source_classNo
computed_rootNo
structural_errorNo
regulatory_frameworkNo
anchored_extract_determinationNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new behavior: transient processing with no storage/logging/retention, the server-vs-browser delegation semantics, and the AP2 export with execution_hash for chain provenance. That is substantive disclosure beyond the structured fields, though error modes and latency are still unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is front-loaded with infrastructure boilerplate ('Deterministic OpenChainGraph compute node'), then a documentation URL and a long FV-status hash link with commentary that a snapshot is not a subscription. These sentences serve provenance marketing rather than tool selection and dilute the small amount of actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so returns needn't be explained, and the 4 parameters are fully documented. However the tool's actual decision function is opaque—policy_parameters merely says 'See the tool's manifest for field names'—so an agent cannot determine what inputs are required or what result constitutes a pass, which is a serious gap for a verification tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description only echoes the compute-mode semantics already in the schema and hints at hash chaining; it adds no new field-level meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Anchored Extract Verifier: OpenChainGraph compute node') and labels it 'compliance_mandate', but never explains what an anchored extract is or what the verification actually checks. The only functional statement is that it exports an AP2 artifact with execution_hash; nothing distinguishes it from siblings like verify_execution_hash or anchor_document_integrity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives, despite a dense sibling set of verify_* and anchor_* tools. The only usage-adjacent text ('Use synthetic or anonymised inputs only') is an input constraint, not a selection rule, so an agent cannot tell when this tool is the right pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_ap2_payment_receiptAP2 PaymentReceipt Verifier & HNP GuardrailA
Read-onlyIdempotent
Inspect

AP2 PaymentReceipt Verifier & HNP Guardrail: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-60-agent-economy-runtime-fit-diagnostic. Output feeds: art-01-ap2-mandate-chain-validator, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/art-62-ap2-payment-receipt-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
findingsNo
receipt_idNo
hnp_verdictNo
status_asofNo
human_presentNo
receipt_verdictNo
signature_checkNo
mandate_chain_intactNo
authorized_amount_headroomNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive safety. The description adds substantial context beyond them: transient processing with no storage/logging/retention, server-vs-browser compute delegation and the returned delegation URL, gpu delegation behavior, and offline receipt verification via the FV-status snapshot. These are genuine behavioral traits, though the framing is boilerplate-heavy rather than operational detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose line is front-loaded, but the block is long and mixes useful facts (retention, compute binding, provenance chain) with marketing-style boilerplate ('Deterministic OpenChainGraph compute node', URLs, FV-status hash). Several clauses repeat the compute-mode semantics already in the schema, diluting density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, nested-schema tool with an output schema and full annotations, the description supplies pipeline context, compute/delegation behavior, and a privacy constraint. Return-value details are unnecessary given the output schema, and the remaining gap is only explicit sibling disambiguation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; the baseline is 3. The description adds only marginal semantics (that parent_hashes sets chain.parent_hashes in the export) and explicitly defers policy_parameters fields to the manifest, so it does not meaningfully exceed structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening states a specific verb and resource ('AP2 PaymentReceipt Verifier'), and the body clarifies it is an OpenChainGraph attestation_mandate compute node that exports an AP2 artifact with execution_hash. It gives pipeline position ('Output feeds: art-01-ap2-mandate-chain-validator...'), but never explicitly distinguishes itself from close siblings like validate_ap2_mandate_chain, verify_execution_hash, or build_ap2_cartmandate_hashchain, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is real operational guidance ('Use synthetic or anonymised inputs only', compute modes, gpu:true always delegates), which implies when to invoke it. But there is no explicit when-to-use/when-not or named alternative among the many AP2 verifier/validator siblings, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_content_credential_signatureContent Credential Signature VerifierB
Read-onlyIdempotent
Inspect

Content Credential Signature Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-123-c2pa-manifest-validator. Output feeds: art-125-provenance-ingredient-tree-resolver. Open at: https://ainumbers.co/chaingraph/art-124-content-credential-signature-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuine context beyond them: transient processing with no storage, logging or retention, a mandated synthetic/anonymised input constraint, an AP2 artifact export with execution_hash, and the fact that the FV-status receipt verifies offline. It does not, however, describe error/failure behavior or what a negative verification looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence front-loads the identity and category, but the text then bloats with infra boilerplate, a raw HTML URL and a 64-hex FV-status path that contribute nothing to tool selection. The genuinely useful facts (compute modes, transient processing, chain position) are buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does explain the AP2 artifact/execution_hash export, which is helpful. But for a verification tool it omits the most decision-relevant content: what the verification result is, what fields policy_parameters expects, and failure semantics. Adequate for plumbing, thin for the actual decision function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes and parent_tool_ids, and the description simply mirrors the compute-mode semantics. Critically, policy_parameters — the actual decision-function inputs — are deferred to a 'manifest' that isn't included, so the operative parameters are undocumented in both schema and description. Baseline 3 for high coverage with no added param meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title identify a specific verb+resource (signature verification of a content credential), and the description frames it as an OpenChainGraph 'compliance_mandate' compute node. But the body never states what is actually verified (e.g. a C2PA claim signature), what a pass/fail means, or how it differs from siblings like validate_c2pa_manifest or decode_c2pa_aiml_assertions. An agent knows the broad domain but not the precise operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives real guidance on compute modes ('auto' vs 'server' vs 'browser', gpu:true always delegating) and states a synthetic-input requirement and no-retention processing. It also positions the tool in a chain (consumes art-123, feeds art-125). However there is no guidance on when to choose this tool over the many verification siblings, which is the primary selection question.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_conversion_receiptConversion Receipt VerifierB
Read-onlyIdempotent
Inspect

Conversion Receipt Verifier: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-191-conversion-receipt-builder. Open at: https://ainumbers.co/chaingraph/art-192-conversion-receipt-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
verdictNo
digest_okNo
binding_okNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses meaningful behavior: compute:'auto' vs 'browser' routing, gpu:true always delegating, transient processing with no storage/logging/retention, and a directive to use only synthetic/anonymised inputs. That data-handling and privacy context is exactly what annotations cannot convey, though it stops short of describing output format or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose-ish content is front-loaded, but the text is dense with jargon and contains redundancy ('OpenChainGraph compute node' repeated) plus a raw URL and a full FV-status hash that add length without aiding tool selection. Every sentence doesn't earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% parameter coverage, the description need not cover return values, and it does supply the compute-chaining, privacy, and provenance context an agent needs to invoke the node correctly. The main gap is the absence of usage routing versus siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description largely restates the compute-mode semantics rather than adding new parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the node role ('Conversion Receipt Verifier', a 'deterministic OpenChainGraph compute node') and that it exports an AP2 artifact with an execution_hash, but never states plainly that it verifies a conversion receipt or what verification means. It does distinguish itself somewhat by naming the upstream artifact (art-191-conversion-receipt-builder), yet it never differentiates itself from close siblings like verify_ap2_payment_receipt or verify_execution_hash.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, nor mention of any alternative tool. The description explains that the receipt verifies offline, but gives no cue about when an agent should pick this verifier over the many other receipt/artifact verifiers in the catalog.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_did_webvh_logdid:webvh DID Log VerifierC
Read-onlyIdempotent
Inspect

did:webvh DID Log Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-04-agent-identity-attestation-checker. Output feeds: art-285-acdc-delegation-chain-verifier. Open at: https://ainumbers.co/chaingraph/art-284-did-webvh-log-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
didNo
validNo
failuresNo
deactivatedNo
entries_checkedNo
current_version_idNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, but the description adds real behavioral context beyond them: deterministic execution, transient input handling ('not stored, logged, or retained'), forced browser delegation for gpu:true, and an AP2 artifact with execution_hash as output. It does not disclose verification failure modes, but the added disclosure is substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Heavy template boilerplate leads the description before the tool's actual function, and a full 64-character FV-status hash plus URL sits in the body without contributing to correct invocation. The genuinely useful compute/transience facts are buried mid-paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the chain position is stated. But for a verification tool the description omits the single most important fact — what artifact is verified and what constitutes a pass — leaving the core operation undefined despite the surrounding infrastructure detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the compute enum and parent_hashes/parent_tool_ids are already documented; the description's compute-mode paragraph largely duplicates the schema. It adds chaining semantics (parent_hashes set chain.parent_hashes) that overlap with the schema text. Baseline 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title supplies a specific verb+resource (verify a did:webvh DID log), but the description itself never explains what verification means — no mention of hash-chain validation, witness proofs, or what the log is checked against. It restates the title as 'did:webvh DID Log Verifier: OpenChainGraph compute node (compliance_mandate)'. An agent knows the subject area but not the actual operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to sibling verifiers (e.g., verify_execution_hash, verify_acdc_delegation_chain). The compute-mode paragraph guides parameter choice, not tool selection. The consume/feed chain hints at position in a workflow but does not tell the agent when this tool is the right call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_disclosure_inclusionVerify Merkle inclusion in a disclosure manifestA
Read-onlyIdempotent
Inspect

Proves (or refutes) that a {path,digest} pair was in a disclosure manifest's room (DATAROOM-1-BUILD-SPEC.md §DR-4) -- worker-side mirror of tools/547-disclosure-manifest-verifier.html's single-file inclusion check. Recomputes the manifest's Merkle root over its entries[], builds the inclusion proof path for the target entry, and reapplies it to confirm it reduces to the claimed merkle_root. Absence is only provable against the exact manifest version passed in.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the entry to prove.
digestYessha256:-prefixed digest of the file to prove.
manifestYesThe disclosure manifest to check against (needs entries[] + merkle_root).

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the internal process: recomputing the Merkle root, building the inclusion proof path, and reapplying it. This adds behavioral context beyond the annotations (readOnlyHint, idempotentHint, destructiveHint). However, it does not mention potential side effects or resource usage, though annotations already indicate safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each serving a distinct purpose: stating the core function, explaining the computational process, and providing a caveat. It is efficient with no fluff, though it could be slightly more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not specify the tool's return value or output format. For a verification tool, the agent needs to know whether the result is a boolean, a proof object, or something else. This missing information reduces completeness, especially given no output schema is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter is already described inline. The description adds minimal extra meaning (e.g., 'sha256:-prefixed digest' matches schema, 'needs entries[] + merkle_root' is repeated). The process description provides indirect context but does not significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Proves (or refutes) that a {path,digest} pair was in a disclosure manifest's room.' It references a specific specification section (DATAROOM-1-BUILD-SPEC.md §DR-4) and distinguishes itself as a worker-side mirror of a specific HTML tool, leaving no ambiguity about what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for single-file inclusion checks against a disclosure manifest, but it does not explicitly state when to use this tool over alternatives like verify_merkle_batch. The caveat about absence being provable only against the exact manifest version is helpful but does not constitute clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_dscsa_transaction_statementDSCSA Transaction Statement (T3) VerifierB
Read-onlyIdempotent
Inspect

DSCSA Transaction Statement (T3) Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-113-saleable-returns-verifier. Open at: https://ainumbers.co/chaingraph/art-112-dscsa-transaction-statement-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
epcis_eventNo
t3_completeNo
identifier_validNo
missing_elementsNo
transaction_dateNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this as a read-only, idempotent, non-destructive, closed-world operation, so the bar is lower, yet the description still adds real behavioral context: inputs are processed transiently and not stored/logged, execution may delegate to the browser, the output is an AP2 artifact carrying execution_hash for chain provenance, and an offline-verifiable FV-status receipt exists. It stops short of describing what the computation returns or any failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the tool name and identity, but the body is dense infrastructure boilerplate (compute binding, privacy note, provenance, receipt URL) that reads as templated across many nodes. It is not bloated to the point of harm, but several sentences describe platform machinery rather than this tool's job.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is legitimately omitted, and the compute/privacy/provenance story is complete. The gap is that for a compliance verification node whose policy_parameters is an opaque additionalProperties object, the description gives no hint of what inputs the decision function expects or what the verification evaluates, deferring entirely to an external manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters in detail, so the baseline is 3. The description restates the compute-mode semantics (duplicating the schema) but adds nothing about chaining inputs or what belongs in the opaque policy_parameters object beyond pointing at 'the tool's manifest'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title pin down the verb and resource (verify a DSCSA T3 transaction statement), and the description confirms this is a deterministic compute node that exports an AP2 artifact feeding art-113-saleable-returns-verifier. However, the description never says what the verification actually checks or what distinguishes a passing from a failing statement, so the domain purpose is left to the name rather than explained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is useful operational guidance on selecting compute mode ('auto' for server-side kernels, 'browser' forces a delegation URL, gpu:true always delegates) and the call to use synthetic/anonymised inputs only. What is missing is any when-to-use guidance relative to siblings (e.g. why this tool versus verify_saleable_return or art-113) and any prerequisite or input-shape guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_dual_layer_disclosureDual-Layer Disclosure VerifierB
Read-onlyIdempotent
Inspect

Dual-Layer Disclosure Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-126-ai-act-art50-marking-checker. Output feeds: art-128-content-binding-assertion-validator. Open at: https://ainumbers.co/chaingraph/art-127-dual-layer-disclosure-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false. The description adds valuable behavioral detail beyond them: inputs are processed transiently and not stored/logged/retained, compute modes delegate to server or browser, gpu:true nodes always delegate, and the output is an AP2 artifact carrying execution_hash. That is substantive disclosure about execution and data handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence restates the title and tags, and the trailing URL plus FV-status hash line are heavy boilerplate. The compute-mode explanation is repetitive with the schema. It is front-loaded with identity but not with the most decision-relevant information, and several sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description partially compensates by noting the AP2 artifact export (execution_hash) and browser delegation URL as outputs. But for a compliance decision function it omits what the verification concludes and what policy_parameters fields mean, leaving a notable gap for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description re-explains the compute enum semantics already documented in the schema, and does not clarify the opaque policy_parameters object, deferring to 'See the tool's manifest for field names'. It adds little beyond the schema for parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an OpenChainGraph 'compliance_mandate' compute node and places it in a chain (consumes art-126, feeds art-128), which distinguishes it from siblings. However, it never explains what a 'dual-layer disclosure' verification actually decides or checks — the core purpose is restated from the title rather than described. It is a functional but vague statement of what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through the provenance chain: 'Consumes upstream artifacts from art-126... Output feeds art-128', which tells the agent where it sits in a pipeline. There is no explicit when-to-use / when-not-to-use guidance and no named alternatives among the many sibling verify_* tools. The 'use synthetic or anonymised inputs only' note is a constraint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_einvoice_vat_calcE-Invoice VAT Calculation VerifierC
Read-onlyIdempotent
Inspect

E-Invoice VAT Calculation Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-293-einvoice-format-validator. Output feeds: art-295-einvoice-jurisdiction-mandate-router. Open at: https://ainumbers.co/chaingraph/art-294-einvoice-vat-calc-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
roundingNo
consistentNo
parse_errorNo
subtotal_deltasNo
tax_total_deltaNo
grand_total_deltaNo
tax_total_computedNo
grand_total_computedNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), and the description adds genuine behavioral context beyond them: compute:"auto" server-side vs compute:"browser" delegation to a browser URL, gpu:true always delegating, transient non-storage/non-logging of inputs, synthetic-inputs-only guidance, and an AP2 artifact with execution_hash for provenance. This is substantive disclosure an agent cannot get from the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is long and padded with duplicated infrastructure boilerplate ('OpenChainGraph compute node' stated twice, compute-mode behavior repeated from the schema), a marketing URL, and an FV-status receipt hash that add noise without helping selection or invocation. The tool-specific purpose is front-loaded only in the title, while the body drifts into generic provenance language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and the description does cover chaining, execution environment, and provenance thoroughly. However, for a 4-parameter tool with a nested policy_parameters object, it never identifies the actual VAT-calc decision fields, leaving the core invocation underspecified relative to the surrounding infrastructure detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; the description merely restates the compute-mode semantics rather than adding meaning. Critically, the actual decision inputs are hidden inside policy_parameters with 'See the tool's manifest for field names', so neither schema nor description tells the agent what business fields to supply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first clause identify a specific verb+resource (verify e-invoice VAT calculation) as a compliance_mandate compute node, but the body never explains what the verification actually checks or what distinguishes it from siblings like validate_einvoice_format, validate_einvoice_batch, and validate_vida_einvoice_conformance. Most of the text is generic compute-node boilerplate rather than tool-specific purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Pipeline position is disclosed (consumes art-293 format-validator, output feeds art-295 jurisdiction-mandate-router), which implies sequencing, but there is no explicit when-to-use statement, no when-not guidance, and no routing against the many sibling e-invoice validation tools. The agent must infer usage entirely from the chaining hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_erc165_interface_idERC-165 Interface ID VerifierC
Read-onlyIdempotent
Inspect

ERC-165 Interface ID Verifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-606-erc165-interface-id-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
findingsNo
selectorsNo
not_provenNo
scope_noteNo
claimed_interface_idNo
duplicate_signaturesNo
known_standard_matchNo
malformed_signaturesNo
computed_interface_idNo
overall_determinationNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the bar is low; the description nonetheless adds real behavioral context — transient processing (not stored, logged, or retained), browser-delegation URL behavior, and an exported AP2 artifact carrying execution_hash for chain provenance, plus an offline-verifiable FV-status receipt. It stops short of describing error conditions or the shape of a verification result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is long and front-loads deployment boilerplate ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') over any statement of purpose, repeats itself, and appends a URL plus a full FV-status hash path. Sentences are not earning their place for an agent trying to decide whether and how to call this.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich output schema and full annotations, the description need not explain return values, and it covers compute routing and ephemerality adequately. However, for a tool whose decision inputs live in the free-form policy_parameters object, the description gives the caller no indication of what must be supplied, leaving the core invocation path opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The compute-mode explanation in the description duplicates what the schema already documents, and for policy_parameters the description (like the schema) defers to 'the tool's manifest' without naming the decision-function fields — no value added beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the tool via the title line and labels it a 'Deterministic OpenChainGraph compute node', but never states the actual operation — e.g. that it checks whether a contract/bytecode implements a given ERC-165 interface ID, or what inputs drive that decision. It restates the name/title and adds infrastructure boilerplate rather than a verb+resource statement, so an agent cannot distinguish this from other verify_* nodes on function alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is operational: compute:"auto"/"server"/"browser" routing, gpu:true delegation, and 'Use synthetic or anonymised inputs only.' There is no when-to-use-vs-alternative guidance relative to siblings like verify_erc2612_permit_binding or verify_eth_state_proof, and no prerequisites for obtaining policy_parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_erc2612_permit_bindingERC-2612 Permit Binding VerifierC
Read-onlyIdempotent
Inspect

ERC-2612 Permit Binding Verifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-612-erc2612-permit-binding-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
digestYes
domainYes
permitYes
reasonsYes
verdictYes
scope_noteYes
recovery_idYes
struct_hashYes
diverging_fieldYes
domain_typehashYes
permit_typehashYes
domain_separatorYes
recovered_signerYes
recovery_id_sourceYes
recovered_signer_matches_ownerYes

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, but the description adds genuinely useful behavior: transient processing with no storage or logging, server-vs-browser execution rules, GPU delegation, and the AP2 artifact with execution_hash for provenance. It stops short of describing output contents or any failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and privacy statements are front-loaded, but the fv-status URL plus a 64-character hash blob and repeated 'deterministic OpenChainGraph compute node' phrasing pad the text without helping tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description needn't explain returns, and it does cover privacy, compute routing, and provenance. However, for a nested-object 4-parameter verification tool it omits what the decision function checks and what policy_parameters should contain, leaving the core semantic gap unfilled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description only echoes the compute-mode semantics already in the schema and says nothing about chaining or policy_parameters beyond deferring to the tool manifest — the baseline 3 for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence restates the title verbatim ('ERC-2612 Permit Binding Verifier') and the rest is infrastructure boilerplate about compute nodes, privacy, and artifact export. It never says what a 'permit binding' check actually validates, so it does not distinguish itself from siblings like verify_erc165_interface_id or verify_erc8004_registry_entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to the many other 'verify_*' tools. The only directive is 'Use synthetic or anonymised inputs only', which is an input constraint rather than a routing rule, and the compute-mode discussion is configuration, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_erc8004_registry_entryERC-8004 Registry Entry VerifierC
Read-onlyIdempotent
Inspect

ERC-8004 Registry Entry Verifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-604-erc8004-registry-entry-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
chain_idNo
findingsNo
not_provenNo
scope_noteNo
registry_typeNo
field_comparisonNo
registry_addressNo
agent_id_handlingNo
overall_determinationNo
address_checksum_findingsNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lower. The description still adds real behavioral context beyond that: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs should be used, an AP2 artifact with execution_hash is exported for provenance, and the FV-status file is a snapshot that verifies offline. That is substantive disclosure an agent would not infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense blob that front-loads a title restatement and infrastructure boilerplate before anything about verification. It embeds a 64-character hash, a URL, and repeated compute-mode wording, none of which is sized to the agent's decision. Sentences about transient processing earn their place; most of the rest does not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but the core semantics remain missing: what a registry entry is, what the decision function evaluates, and how failures present. For a 4-parameter, nested-object, zero-required-parameter verification tool, the description does not give the agent enough to invoke it confidently beyond the structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters carry their own descriptions, so the schema already does the heavy lifting and the baseline is 3. The description's compute-mode paragraph largely duplicates the schema's compute description verbatim in substance, adding no new syntax, defaults, or constraints beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the name/title ('ERC-8004 Registry Entry Verifier') and classifies it as an 'OpenChainGraph compute node (compliance_control)' but never says what verifying a registry entry actually checks, against what source, or what a pass/fail means. It is essentially a tautology of the title plus infrastructure metadata. It also does nothing to distinguish itself from the nearby sibling check_mcp_registry_entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to pick this verifier over sibling verifiers, nor any prerequisites or preconditions for invoking it. The only 'when' statement concerns the compute parameter (auto/server/browser), which is parameter usage rather than tool-selection guidance. An agent gets no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_etf_pcf_basketETF PCF Create/Redeem Basket VerificationB
Read-onlyIdempotent
Inspect

ETF PCF Create/Redeem Basket Verification: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-578-etf-pcf-basket-verification.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verdictNo
decisionNo
findingsNo
pcf_as_ofNo
line_countNo
scope_noteNo
clause_noteNo
cash_matchesNo
line_resultsNo
rejected_inputsNo
units_requestedNo
cash_delta_minorNo
transaction_typeNo
creation_unit_sizeNo
expected_cash_minorNo
cash_deposited_minorNo
cash_tolerance_minorNo
cash_in_lieu_total_minorNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real substance on top: compute mode semantics (auto/server/browser, gpu delegation), transient non-retention of inputs, and an AP2 artifact export carrying execution_hash for chain provenance. The synthetic-input caveat is an extra behavioral constraint not present in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead is front-loaded with the tool name and node type, but a large fraction of the text is generic infrastructure boilerplate (compute binding, FV-status URL block) that repeats across OpenChainGraph nodes rather than earning its place for this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but the description spends its budget on compute plumbing instead of the verification semantics — what a PCF create/redeem basket check entails and what policy_parameters must contain remains opaque, leaving the agent able to invoke the tool but not to reason about its result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's mention of execution_hash chaining loosely connects to parent_hashes but adds no format or syntax detail; policy_parameters field names are deferred to an external manifest in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and opening line state a specific verb+resource ('ETF PCF Create/Redeem Basket Verification'), so the topic is identifiable. However, the body never explains what the verification actually checks or validates — it pivots immediately into OpenChainGraph compute plumbing. It also fails to distinguish itself from the many other verify_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives, no prerequisites, and no routing to siblings such as verify_execution_hash or validate_fund_collateral. The only constraint given is 'Use synthetic or anonymised inputs only', which is a data-handling rule, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_eth_state_proofState-Proof VerifierC
Read-onlyIdempotent
Inspect

State-Proof Verifier: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-279-state-proof-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorsNo
accountNo
addressNo
verdictNo
diagnosticNo
account_existsNo
bounded_limitsNo
regulatory_noteNo
storage_resultsNo
block_state_rootNo
receipt_statementNo
proof_nodes_consumedNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and a closed world, so the safety profile is covered. The description adds genuinely useful context beyond that: transient processing with no storage/logging/retention, an AP2 artifact export carrying execution_hash for chain provenance, and browser delegation for gpu:true nodes. The compute-mode content largely duplicates the schema, so the net unique disclosure is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with a name/title restatement, then padded with infrastructure marketing, a raw artifact URL, and a long FV-status receipt hash plus disclaimer. Few of these sentences help an agent decide or invoke; the substantive purpose statement is absent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a cryptographic verifier the core semantics are missing: what constitutes a proof, what the verification checks, and what constitutes pass/fail. The key input (policy_parameters) is deferred to an unstated 'manifest', and only the output schema partly compensates. The definition is not complete enough to call this tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented and the baseline is 3. The description restates the compute modes (already in the schema's enum description) and points to a 'tool's manifest' for policy_parameters field names without adding format or meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name and title ('State-Proof Verifier', 'OpenChainGraph compute node') and then spends nearly all its text on platform boilerplate (compute modes, retention, artifact export, FV-status URL). It never states the actual operation — e.g. verifying an Ethereum state/Merkle-Patricia proof against a state root — nor distinguishes it from the many sibling verify_* tools such as verify_merkle_airdrop_proof or verify_merkle_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is guidance on the compute parameter's modes but nothing on when to choose this tool over alternatives. Given a sibling set crowded with verify_* and proof-related tools, an agent gets no routing signal for selection or exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_execution_hashVerify a ChainGraph execution hashA
Read-onlyIdempotent
Inspect

Independently verify a ChainGraph artifact (ChainGraph Standard v0.1 §6). Recomputes SHA-256 over the canonical (sorted-key, whitespace-stripped) JSON of policy_parameters + output_payload and compares it to the claimed execution_hash. A match proves the artifact's stated inputs deterministically produce its stated outputs. Pass either a full artifact object, or policy_parameters + output_payload + claimed_hash. Inputs must be I-JSON (RFC 7493): integers beyond 2^53 must be passed as JSON strings, and NaN/Infinity are rejected. Values outside I-JSON have no stable canonical form, so this tool returns a structured -32602 error (error.data.reason "ijson_violation") instead of a hash. Pure client-safe compute -- no data is stored. Use this to verify artifacts from any vendor that conforms to the ChainGraph Standard.

ParametersJSON Schema
NameRequiredDescriptionDefault
artifactNoA full ChainGraph artifact envelope (must contain policy_parameters, output_payload, and execution_hash).
claimed_hashNoThe execution_hash to check against (if not passing a full artifact).
output_payloadNoArtifact output_payload (if not passing a full artifact).
policy_parametersNoArtifact policy_parameters (if not passing a full artifact).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context: 'Pure client-safe compute -- no data is stored', the deterministic proof semantics ('A match proves...'), and the exact structured error for I-JSON violations (error.data.reason 'ijson_violation'). This goes beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average, but each sentence earns its place: algorithm, proof semantics, input modes, I-JSON constraints, error behavior, and scope. The core verification action is front-loaded, and the less critical constraints appear later. No redundant fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a pure verification tool with full schema coverage and strong annotations, this description is complete: it covers algorithm, expected inputs, failure modes, data-handling guarantees, vendor scope, and the meaning of a match. The only omission is the success return payload shape, but with no output schema and an idempotent read-only operation, an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents every parameter. The description adds the important either/or relationship (pass artifact OR policy_parameters + output_payload + claimed_hash), which is not captured in the schema. It doesn't add per-parameter detail beyond the schema, but this interaction semantics justifies the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Independently verify') and resource ('ChainGraph artifact'), then states the exact algorithm: recompute SHA-256 over canonical JSON of policy_parameters + output_payload and compare to execution_hash. This clearly distinguishes it from generic 'check' or 'build' tools and from other verify_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use it ('Use this to verify artifacts from any vendor that conforms to the ChainGraph Standard'), gives two accepted input modes (full artifact vs. individual components), and documents a hard precondition: inputs must be I-JSON, with integers beyond 2^53 passed as strings and NaN/Infinity rejected. This is actionable routing and usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_finp2p_ledger_proofFinP2P Ledger Proof VerifierC
Read-onlyIdempotent
Inspect

FinP2P Ledger Proof Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-587-finp2p-ledger-proof-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hash_matchNo
scope_noteNo
parse_errorsNo
signature_matchNo
verified_againstNo
hashlist_field_orderNo
hashlist_values_declaredNo
hashlist_values_consistentNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely useful behavior beyond them: inputs are processed transiently and not stored or logged, execution is deterministic, and the call exports an AP2 artifact with an execution_hash for chain provenance. The compute-mode delegation behavior (server vs browser, gpu:true always delegating) is also disclosed. It stops short of describing failure/verification semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The name and node framing are front-loaded, but the text is padded with a full URL and a long FV-status path/hash, and it repeats "OpenChainGraph compute node" and the compute-mode rules that also live in the schema. Usable and mostly on-topic, but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description does cover execution model, transient-input handling, and provenance output. However, for a compliance verification node it omits what is being verified, what a failing result means, and any chaining prerequisites for parent_hashes/parent_tool_ids, leaving a real purpose gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description echoes the compute-mode behavior and references chaining (setting chain.parent_hashes in the export), but adds no syntax or constraints beyond what the schema already documents for compute, parent_hashes, parent_tool_ids, and policy_parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what verifying a "FinP2P ledger proof" actually means or what decision it returns; the verb is carried entirely by the tool name. The body substitutes infrastructure boilerplate ("OpenChainGraph compute node", compute modes, FV-status) for a statement of purpose, only hinting at output via "Exports an AP2 artifact with execution_hash". It restates the name plus generic node framing rather than describing the verification task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling verifiers (verify_eth_state_proof, verify_proof_of_reserves_consistency, verify_summa_mst_inclusion, etc.). The only when-ish content concerns the compute parameter ("compute:'browser' forces client-side execution"), which is parameter selection, not tool selection. No prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_input_attestationsInput Attestation VerifierB
Read-onlyIdempotent
Inspect

Input Attestation Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-598-input-attestation-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
attestationsNo
attestation_countNo
zero_attestation_caveat_shownNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: transient processing with no storage/logging/retention, server-vs-browser delegation behavior for gpu:false/gpu:true nodes, and export of an execution_hash-bearing AP2 artifact. That is exactly the kind of context readOnlyHint/idempotentHint alone cannot convey; only the return shape is left implicit (and an output schema exists).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, but it repeats 'OpenChainGraph compute node' twice, and the trailing absolute URL plus a 64-char FV-status hash and the 'snapshot, not a subscription' caveat are provenance boilerplate that consumes space without helping invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the behavior is reasonably covered. But for a 4-param tool with nested policy_parameters, it never states what inputs the decision function expects or what the attestation attests to, leaving a gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains compute, parent_hashes, parent_tool_ids, and policy_parameters. The description's compute-mode explanation largely duplicates the schema's own description and adds nothing about parent_hases ordering or policy_parameters field names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names a verb+resource ('Input Attestation Verifier' / OpenChainGraph compute node) and does state it exports an AP2 artifact, but the actual verification semantics — what an 'input attestation' is and what the check confirms — are never spelled out. Against siblings like validate_input_attestations or verify_execution_hash, an agent cannot tell which to pick from this text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a data-handling constraint ('Use synthetic or anonymised inputs only') and compute-mode mechanics, but no when-to-use/when-not guidance and no routing to an alternative among the many sibling validate_*/verify_* tools. The agent is left to infer applicability entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_ipe_integrityIPE Integrity VerifierC
Read-onlyIdempotent
Inspect

IPE Integrity Verifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-460-ipe-integrity-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toleranceNo
hash_matchNo
report_hashNo
discrepanciesNo
row_count_matchNo
integrity_statusNo
report_row_countNo
source_row_countNo
control_total_deltaNo
source_extract_hashNo
report_control_totalNo
source_control_totalNo
total_within_toleranceNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real value: transient processing with no storage, logging, or retention, a synthetic-inputs-only constraint, server vs browser delegation rules including gpu:true behaviour, and an exported AP2 artifact carrying execution_hash for chain provenance. It does not explain what a failure verdict or integrity outcome looks like, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening duplicates itself ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.'), and the trailing FV-status sentence embeds a 64-character hash URL that consumes a large share of the text for little selection value. Structure exists but waste is significant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return values are handled by the output schema, but for a domain-specific verifier the description never explains the decision function or what inputs policy_parameters should contain beyond pointing at an unreachable manifest. Combined with zero required parameters and no sibling differentiation, an agent cannot confidently determine what this tool computes or when it applies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds execution semantics for compute mode that mirror the schema and explicitly defers field names for policy_parameters to 'the tool's manifest', adding no field-level meaning of its own. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a verifier for IPE integrity and identifies it as a deterministic OpenChainGraph compliance_control compute node, but never states what it actually verifies (what an IPE is, which integrity property, what a passing/failing result means). It does not distinguish itself from near-siblings such as verify_execution_hash, verify_input_attestations, or verify_anchored_extract. The first two sentences largely restate the name and title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over the many other verify_* siblings, nor any prerequisite statements. The only usage-adjacent content is compute-mode selection (auto/server/browser), which is execution plumbing rather than task selection. An agent has no routing criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_kya_x402_scopeKYA Credential x x402 Payload Scope VerifierC
Read-onlyIdempotent
Inspect

KYA Credential x x402 Payload Scope Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-565-kya-x402-scope-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
verdictNo
findingsNo
rationaleNo
payload_schemeNo
kya_claim_basisNo
payload_networkNo
rejected_inputsNo
credential_subjectNo
credential_audienceNo
indeterminate_reasonsNo
credential_seller_service_idNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses genuinely useful behavior: transient processing with no storage/logging/retention, the recommendation to use synthetic inputs, server-vs-browser delegation semantics, and emission of an AP2 artifact carrying an execution_hash. That is real added context on data handling and execution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loading is weak: the first sentence is a tautological title restatement, followed by dense compute-binding mechanics, and the paragraph closes with a long FV-status hash URL. Much of the payload is off-target for tool selection, burying the (absent) statement of purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required, and privacy/provenance behavior is covered. However, for a zero-required-param verification tool in a crowded x402 family, the description omits the core question it answers and any disambiguation, leaving a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema (including the compute enum and policy_parameters). The description only re-states the compute-mode behavior and adds no new meaning about parent_hashes, parent_tool_ids, or policy_parameters field contents; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens by restating the title verbatim and then pivots to compute infrastructure; it never states what 'scope verification' actually checks (e.g., whether a KYA credential's scope authorizes a given x402 payload). An agent learns how the node executes but not what verification it performs or what decision it returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this over the many adjacent x402/AP2 siblings (validate_a2a_x402_mandate, decode_x402_payment, verify_x402_signer_recovery, correlate_ap2_cartmandate_x402). The only usage pointers concern the compute mode parameter, which is invocation detail rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_license_electionLicense Election VerifierB
Read-onlyIdempotent
Inspect

License Election Verifier: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-199-license-election-certifier. Open at: https://ainumbers.co/chaingraph/art-200-license-election-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNo
verdictNo
binding_okNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real behavioral context beyond them: deterministic execution, transient processing with no storage/logging/retention, the browser-delegation fallback, and the export of an AP2 artifact carrying execution_hash for provenance. That is substantive disclosure for a compute node, though the response/error behavior is not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identity and upstream-producer facts are front-loaded, but the lengthy compute-mode explanation largely duplicates the schema's own compute description, and the trailing URL plus FV-status hash string are bulky. Several sentences earn their place (transient processing, synthetic inputs); several do not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the chaining, compute, privacy and artifact facts are covered. The gap is the decision function itself: policy_parameters field names are only obtainable from an external manifest/URL, leaving the agent without the information needed to supply the tool's substantive input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; baseline is 3. The description restates the compute-mode semantics already present in the schema and adds nothing about parent_hashes/parent_tool_ids, while policy_parameters field names are deferred to an external manifest, so no value is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource (verify license election) and declares the tool an OpenChainGraph compute node that exports an AP2 artifact, and it identifies the upstream producer (art-199-license-election-certifier), which partly distinguishes it from siblings like certify_license_election. However, the body spends most of its words on compute plumbing rather than stating what the verification actually decides, so the core purpose remains vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Consumes upstream artifacts from: art-199-license-election-certifier' clause implies this is a downstream chain step, and 'Use synthetic or anonymised inputs only' is a usage constraint. But there is no explicit when-to-use vs when-not-to-use guidance and no routing against the many neighboring license tools, so the usage signal is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_merkle_airdrop_proofMerkle Airdrop-Proof VerifierA
Read-onlyIdempotent
Inspect

Merkle Airdrop-Proof Verifier: OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-605-merkle-airdrop-proof-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
leafNo
noteNo
pathNo
reasonsNo
path_intactNo
computed_rootNo
pair_sort_usedNo
first_divergent_stepNo
root_matches_claimedNo
encoding_variant_usedNo

TDQS

A3.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds that execution is deterministic, inputs are processed transiently and not stored/logged/retained, compute may be server-side or browser-delegated, and an AP2 artifact with execution_hash is exported. This is strong disclosure of side effects, data handling, and execution model.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured as a single paragraph with useful compute, privacy, and provenance details. However, it repeats 'OpenChainGraph compute node' and includes external URL and FV-status metadata that is not essential for calling the tool. It is informative but not tightly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers compute binding, privacy, chaining via execution_hash, artifact export, and offline FV-status verification. It still does not explain the actual verification inputs or expected results for a Merkle airdrop proof, and policy_parameters are deferred to an external manifest. With full schema coverage and annotations, this is adequate but incomplete for the specific task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage for all four parameters, including compute mode, parent_hashes, parent_tool_ids, and policy_parameters. The description reinforces compute-mode behavior and chaining provenance, but policy_parameters field names are still deferred to the tool manifest. This is good but not fully self-contained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and opening phrase clearly identify the tool as a Merkle airdrop-proof verifier. However, beyond the name, the description mostly explains generic OpenChainGraph compute-node behavior and never details what a Merkle airdrop proof verification actually entails. This leaves the high-level purpose clear but the specific operation under-specified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains compute modes (auto/server/browser), gpu delegation behavior, parent hashes for chaining, and the privacy instruction to use synthetic or anonymised inputs only. It does not provide explicit when-to-use guidance relative to sibling tools, prerequisites, or the expected proof/policy parameter format beyond deferring to a manifest.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_merkle_batchMerkle Batch VerifierC
Read-onlyIdempotent
Inspect

Merkle Batch Verifier: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: rca-02-mica-reserve-stress, pnr-01-dora-ict-cascade-simulator. Output feeds: ptg-01-ap2-prompt-template-generator, cry-05-agent-action-audit-trail-aggregator. Open at: https://ainumbers.co/chaingraph/cry-04-merkle-batch-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNo
resultsNo
pass_rateNo
failed_countNo
invalid_countNo
verified_countNo
batch_integrityNo

TDQS

C2.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context beyond them: transient processing with no storage or logging, the input-hygiene requirement to use synthetic/anonymised data, the browser-delegation behavior for gpu:true nodes, and the AP2 artifact with execution_hash it exports. That is meaningful disclosure for a compute node.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool identity is front-loaded, but the text is a dense run-on that repeats itself ('OpenChainGraph compute node' twice) and embeds a raw URL, FV-status hash path, and long upstream/downstream artifact lists that crowd out the actual operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and privacy/compute/provenance are covered. However, the core semantics are left to an external manifest ('See the tool's manifest for field names'), so an agent still lacks the information needed to supply meaningful policy_parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description repeats the compute-mode semantics without adding syntax or constraints beyond the schema, establishing the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title ('Merkle Batch Verifier: OpenChainGraph compute node') and then describes execution plumbing rather than what the verification actually does. It never states what a 'merkle batch' is verified against or what the decision function returns, so an agent cannot distinguish it from siblings like verify_merkle_airdrop_proof or verify_execution_hash on purpose alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use/when-not guidance and no comparison to the many sibling verify_* tools. The only actionable routing is the compute-mode explanation, which is parameter-level behavior already covered by the schema, not tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_migration_completenessPayment Data Migration CompletenessB
Read-onlyIdempotent
Inspect

Payment Data Migration Completeness: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-519-payment-data-migration-completeness.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
as_ofNo
currencyNo
rationaleNo
partitionsNo
migration_idNo
partition_countNo
rejected_inputsNo
any_sampled_onlyNo
aggregate_completeNo
migration_completeNo
partition_inconsistentNo
all_partitions_completeNo
sampled_partition_countNo
aggregate_count_varianceNo
sample_discrepancies_totalNo
observed_changed_field_countNo
declared_transformation_rulesNo
undeclared_transformed_fieldsNo
partitions_with_variance_countNo
aggregate_value_variance_displayNo
aggregate_value_variance_minor_unitsNo
reconciliation_tolerance_minor_unitsNo

TDQS

B3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real behavior: deterministic compute, transient processing that is 'not stored, logged, or retained,' compute-mode resolution (auto/server/browser, gpu:true delegation), AP2 artifact export, and an offline-verifiable FV-status snapshot. It omits error/failure behavior, but the disclosure beyond annotations is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The domain name is front-loaded, but the body is dense infrastructure boilerplate (compute binding, transient processing, long URL and a full 64-char hash) that is largely repeated across sibling compute nodes. The substantive purpose gets one short sentence while boilerplate dominates, so not every sentence earns its place for this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover safety. What remains missing is the substantive semantics of the decision function itself — the description defers to 'the tool's manifest for field names' and never says what the completeness check evaluates. For a 4-param tool with nested policy_parameters, this leaves a real gap, though the execution/provenance behavior is well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics (auto/server/browser, gpu:true delegation) that the schema already spells out and adds no new parameter detail. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title/domain ('Payment Data Migration Completeness') and the node type ('attestation_mandate') are named, and the artifact it emits (AP2 with execution_hash) is stated. But the description never says what the tool actually verifies or what 'completeness' means here, so it does not clearly distinguish itself from the many other verify_* and compute_* siblings. Purpose is identifiable by domain but vague on the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance and no alternatives are named. The only usage-adjacent instruction is 'Use synthetic or anonymised inputs only,' which is an input constraint rather than routing guidance. An agent gets no help deciding between this and the other migration/attestation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_product_authenticityLuxury Goods Product Authenticity VerifierC
Read-onlyIdempotent
Inspect

Luxury Goods Product Authenticity Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-116-product-lineage-builder. Open at: https://ainumbers.co/chaingraph/art-117-product-authenticity-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
authenticNo
product_idNo
chains_to_rootNo
ownership_continuousNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds material context: inputs are processed transiently and not stored, logged or retained; synthetic or anonymised inputs should be used; an AP2 artifact with execution_hash is exported for provenance; and upstream artifacts from a named tool are consumed. These are real behavioral facts the annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a wall of boilerplate that mixes relevant operative facts (transient processing, upstream chaining) with low-value operational trivia (a marketing URL, an FV-status snapshot disclaimer). Front-loading is present but dominated by meta-commentary; several sentences do not earn their place for an agent deciding whether and how to call the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the four parameters are fully documented in the schema. However, for a 4-parameter compliance compute node with a nested policy_parameters object, the description never explains what the verification decision is, what a positive/negative result means, or how policy_parameters influence the outcome — leaving a substantive gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode sentence restates the schema field rather than extending it, and it explicitly defers policy_parameters field names to an external manifest, adding nothing beyond structured data. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title ('Luxury Goods Product Authenticity Verifier') and then piles on infrastructure metadata ('OpenChainGraph compute node (compliance_mandate)') rather than explaining what the authenticity verification actually does. The only functional detail is that it consumes upstream artifacts from art-116-product-lineage-builder, which hints at a lineage-based check but never states the decision being made. An agent cannot distinguish this from assess_suspect_product_status or resolve_recall_trace on the basis of the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The compute-mode guidance ('auto' vs 'browser' vs 'server') is parameter selection advice, not tool-selection advice, and it duplicates the schema. There is no statement of when to reach for this verifier versus the many adjacent product/lineage/compliance tools in the sibling list, and no prerequisites or preconditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_proof_of_reserves_consistencyProof-of-Reserves VerifierC
Read-onlyIdempotent
Inspect

Proof-of-Reserves Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-584-proof-of-reserves-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
findingsNo
not_provenNo
coverage_ratio_pctNo
determination_noteNo
regulatory_frameworkNo
computed_reserve_rootNo
declared_reserve_rootNo
overall_determinationNo
computed_liability_rootNo
declared_liability_rootNo
reserve_figure_cross_checkNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description goes beyond them: it discloses that inputs are processed transiently and not stored or logged, that gpu:true nodes always delegate to the browser, and that the result is exported as an AP2 artifact carrying execution_hash for chain provenance. It stops short of describing failure modes or what the consistency verdict looks like, but for a read-only compute this is solid added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The compute-mode sentence duplicates the schema and the trailing documentation URL plus FV-status path consume real estate without helping an agent decide or call the tool. It is moderately front-loaded but a meaningful share of the text does not earn its place for this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, but this is a 4-parameter compliance-verification tool with nested inputs and the description supplies no domain semantics for what is being verified or what inputs drive the decision. The generic template text leaves the core question—what makes a proof-of-reserves set 'consistent'—unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains compute, parent_hashes, parent_tool_ids, and policy_parameters; the description merely paraphrases the compute enum. The one genuinely vague field, policy_parameters ('see the tool's manifest for field names'), is not clarified anywhere in the description, but with full schema coverage the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states what verification this tool performs. Apart from restating the title ('Proof-of-Reserves Verifier'), the body is entirely generic OpenChainGraph compute-node boilerplate (compute modes, transient processing, AP2 export) that could be pasted onto any sibling tool. An agent cannot tell from this text what 'consistency' means here or how it differs from close siblings such as verify_reserve_proof, check_genius_reserve_disclosure, or recompute_stablecoin_reserve_3source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to siblings, nor any statement of prerequisites or inputs required for a meaningful verification. The only conditional logic given ('auto' vs 'browser' compute modes) concerns a transport parameter already documented in the schema, not tool selection. The agent is left to infer everything about placement in a workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_reserve_proofReserve Proof VerifierC
Read-onlyIdempotent
Inspect

Reserve Proof Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-280-reserve-proof-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
exchangeNo
por_roundNo
not_provenNo
sum_verifiedNo
computed_rootNo
declared_rootNo
root_hash_matchNo
structural_errorNo
computed_leaf_hashNo
inclusion_verifiedNo
regulatory_frameworkNo
storage_proof_compositionNo
reserve_proof_determinationNo

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds meaningful behavior: inputs are processed transiently and never stored/logged, compute:'browser' returns a delegation URL instead of a result, gpu:true nodes always delegate, and the call exports an AP2 artifact with execution_hash. Those are real operational traits beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense boilerplate block with a URL and a 64-character FV-status hash occupying the back half, and the actual tool purpose is never front-loaded. Repeated 'OpenChainGraph compute node' phrasing and spec-page links crowd out the information an agent actually needs to decide and invoke.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter verification tool with a nested opaque policy_parameters object, the description offers no indication of what inputs constitute a reserve proof or what the verification decides, deferring to 'the tool's manifest for field names.' Output schema and rich annotations cover returns and safety, but the core 'what do I pass and what does it check' gap leaves the definition incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description adds almost no parameter meaning beyond restating the compute routing rules that the schema already states. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The only statement of what the tool does is the title restated ('Reserve Proof Verifier: OpenChainGraph compute node'). The rest of the text describes infrastructure — compute routing, data retention, artifact export — not the verification operation itself. Neither the verb nor the resource is elaborated beyond the name, so an agent learns nothing it did not already infer from the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many adjacent siblings (precheck_reserve_attestation, verify_proof_of_reserves_consistency, compute_por_liabilities_composite, check_genius_reserve_disclosure). It notes compute modes, which is parameter behavior rather than selection guidance. The 'compliance_mandate' tag is the only contextual hint and is unexplained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_revocation_statusRevocation-Status VerifierC
Read-onlyIdempotent
Inspect

Revocation-Status Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-287-revocation-status-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
statusNo
structural_errorNo
status_list_indexNo
revoked_for_purposeNo
status_list_credential_urlNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent/non-destructive profile, but the description adds real behavioral context beyond them: transient processing with no storage or logging, the server-vs-browser compute resolution rules, and the fact that an AP2 artifact with execution_hash is exported and the receipt verifies offline. This materially helps an agent predict side effects and dependencies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dump of boilerplate, a documentation URL, a raw FV-status hash path, and provenance prose before any statement of purpose. The critical 'what does this verify' information is absent while low-value metadata leads.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and annotations cover the safety profile. However, for a decision-function tool with a nested policy_parameters object, the description never identifies the subject of verification or the relevant input fields, leaving the core behavior to an off-page manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description largely repeats the compute enum semantics already in the schema, and for the key policy_parameters object it defers externally ('See the tool's manifest for field names') rather than adding meaning, so it does not beat the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mostly restates the tool name plus a boilerplate family label ('compliance_mandate') and generic ChainGraph compute-node language. It never states what 'revocation status' actually refers to (credentials, mandates, certificates, licenses) or what the decision function evaluates, so an agent cannot distinguish this from the many other verify_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative-tool guidance. The only operational advice concerns compute mode selection and 'use synthetic or anonymised inputs only', which is a data-handling caveat rather than usage scoping.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_saleable_returnDSCSA Saleable Returns VerifierC
Read-onlyIdempotent
Inspect

DSCSA Saleable Returns Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-112-dscsa-transaction-statement-verifier. Output feeds: art-114-suspect-product-quarantine. Open at: https://ainumbers.co/chaingraph/art-113-saleable-returns-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchNo
reasonNo
verdictNo
id_matchNo
lot_matchNo
txn_anchoredNo

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuine context beyond that: transient processing with no storage or logging, a synthetic-inputs-only constraint, browser delegation semantics for gpu:true nodes, and an execution_hash-bearing AP2 export. It stops short of describing the verification's own behavior (what checks run, what failure looks like), and much of the text is platform boilerplate rather than tool-specific.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is bloated with platform metadata: a repeated 'Deterministic OpenChainGraph compute node' clause, a documentation URL, and a 64-character FV-status receipt hash that no agent needs to invoke the tool. The one useful sentence about chaining and retention is buried mid-paragraph, and the tool's actual purpose never gets a dedicated front-loaded sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and full annotation coverage, the description only needs to add invocation context, and it does supply the upstream artifact dependency, the downstream consumer, and the execution/retention model. What remains thin is the semantic domain: an agent still cannot tell what a DSCSA saleable-return verification evaluates. Adequate but with a clear domain gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines compute, parent_hashes, parent_tool_ids and policy_parameters, and the description largely repeats the compute-mode text verbatim. For policy_parameters it adds little beyond 'see the tool's manifest for field names', leaving the actual decision inputs opaque. Baseline 3 is appropriate when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening phrase names a domain and resource ('DSCSA Saleable Returns Verifier'), and the artifact lineage (consumes from the transaction-statement verifier, feeds the suspect-product quarantine) hints at scope. However, the description never states in plain terms what is being verified about a saleable return or what a pass/fail means, and it does not contrast itself with the closely related sibling verify_dscsa_transaction_statement. The purpose is inferable but not stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative-selection guidance appears. The only conditional text concerns compute mode ('auto' vs 'browser'), which is execution routing rather than usage guidance. An agent gets no signal about when this tool is the right choice versus the other DSCSA verification siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_settlement_asset_backingSettlement-Asset Backing InvariantC
Read-onlyIdempotent
Inspect

Settlement-Asset Backing Invariant: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-521-settlement-asset-backing-invariant.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
as_ofNo
buffersNo
movementsNo
rationaleNo
buffer_countNo
backing_modelNo
breaches_afterNo
buffer_marginsNo
crossing_countNo
breaches_beforeNo
rejected_inputsNo
thinnest_bufferNo
backing_ratio_bpsNo
idle_cost_displayNo
backing_applicableNo
backing_intact_afterNo
backing_intact_beforeNo
crossing_cost_displayNo
idle_cost_minor_unitsNo
idle_amount_minor_unitsNo
required_backing_displayNo
crossing_cost_minor_unitsNo
movement_breaks_invariantNo
required_backing_minor_unitsNo
value_in_circulation_displayNo
aggregate_backing_after_displayNo
aggregate_backing_before_displayNo
value_in_circulation_minor_unitsNo
aggregate_backing_after_minor_unitsNo
aggregate_backing_before_minor_unitsNo

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses meaningful behavioral traits: deterministic execution, the auto/server/browser compute routing rules (including gpu:true always delegating), and that inputs are processed transiently and not stored, logged, or retained. It also notes it exports an AP2 artifact carrying execution_hash and that the FV-status receipt verifies offline as a snapshot. These are genuinely useful operational facts the annotations do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is front-loaded with the tool identity, but the body is padded with repeated compute-infrastructure boilerplate ('Deterministic OpenChainGraph compute node' echoes the first clause), a bare spec URL, and a long FV-status hash. Some of it earns its place (transience, delegation, AP2 export), but the domain purpose sentence is conspicuously absent while infrastructure detail dominates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required. However, for a 4-parameter compliance tool with nested policy_parameters and a 100%-described schema, the description omits the one thing structured fields cannot supply: what invariant is being verified and what a pass/fail means. An agent knows how to run it but not what it decides or when it is the right tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description echoes the compute-mode semantics ('auto' server-side for gpu:false, 'browser' forces delegation, gpu:true always delegates) but adds no new meaning, and it defers policy_parameters field names to an external manifest. Baseline 3 is appropriate when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Settlement-Asset Backing Invariant: OpenChainGraph compute node') and then pivots to compute-routing infrastructure rather than stating what the tool actually verifies. Nowhere does it say what a 'backing invariant' check confirms (e.g. that settlement assets are sufficiently reserved/backed) or what the decision function returns. The only concrete action named is exporting an AP2 artifact, which is a side effect, not the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to invoke this tool, what problem it solves, or how it differs from closely related siblings such as verify_proof_of_reserves_consistency, classify_settlement_asset_finality, or validate_tokenized_security_lifecycle. The only directive, 'Use synthetic or anonymised inputs only', is an input-handling constraint rather than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_slsa_provenanceSLSA Provenance VerifierB
Read-onlyIdempotent
Inspect

SLSA Provenance Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-135-cyclonedx-sbom-validator. Output feeds: art-137-openvex-statement-validator. Open at: https://ainumbers.co/chaingraph/art-136-slsa-provenance-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pred_okNo
type_okNo
provenance_validNo
slsa_build_levelNo
builder_id_presentNo
subject_digest_matchNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description adds real value: transient processing with no storage/logging/retention, a mandate to use synthetic or anonymised inputs only, the exported AP2 artifact with execution_hash, and the snapshot-not-subscription nature of the FV-status receipt. That is meaningful behavioral context beyond the annotations, though it does not describe failure modes or what a verification result contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is informative but bloated: the opening repeats 'Deterministic OpenChainGraph compute node' after already labeling it, and the trailing URL plus FV-status receipt hash are operational noise that an agent will not use for tool selection. The high-value constraint (synthetic inputs only) is buried mid-paragraph rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not required, and the description does cover the exported artifact and chain context. What is missing is the core task semantics — what SLSA provenance actually gets checked and what policy_parameters a caller should supply — which is a notable gap for a 4-parameter compliance tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute modes, parent_hashes, parent_tool_ids, and the chaining semantics. The description largely restates the compute-mode behavior and adds nothing about the opaque policy_parameters object ('See the tool's manifest for field names'), leaving the primary decision input unexplained. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and self-reference ('SLSA Provenance Verifier') name the resource being verified, but the description's own prose never states the verification act — it opens by classifying itself as a 'Deterministic OpenChainGraph compute node (compliance_mandate)' and spends its text on execution plumbing. The chain position (consumes from art-135-cyclonedx-sbom-validator, feeds art-137-openvex-statement-validator) hints at the workflow but does not distinguish this from the many other verify_*/validate_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The upstream/downstream artifact references imply ordering ('consumes upstream artifacts from ...', 'Output feeds ...'), and the compute-mode paragraph gives operational guidance on when server vs browser execution applies. However, there is no explicit when-to-use statement, no exclusions, and no routing away from siblings like validate_cyclonedx_sbom or validate_openvex_statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_summa_mst_inclusionSumma MST Inclusion CheckerC
Read-onlyIdempotent
Inspect

Summa MST Inclusion Checker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-620-summa-mst-inclusion-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description still adds substantive behavior: transient processing with no storage, logging, or retention, forced browser delegation for gpu:true nodes, and an AP2 artifact export carrying execution_hash for chain provenance. This is genuinely additive operational context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text opens with redundant duplication ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node') and then spends significant length on a documentation URL and a long FV-status hash path plus snapshot explanation that adds little to an agent's decision to call the tool. Front-loading is acceptable but the signal-to-boilerplate ratio is poor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a verification tool with a nested free-form policy_parameters object and no output schema, the description should at minimum describe what is being verified and what a pass/fail result means. Instead it covers infrastructure and provenance mechanics while leaving the core decision semantics unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the compute-mode semantics in the description mirror what the schema already documents. The one added hint is that policy_parameters field names come from 'the tool's manifest', but that is a pointer rather than real semantic clarification, so the baseline 3 for high-coverage schemas applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title ('Summa MST Inclusion Checker: OpenChainGraph compute node') and never explains what Summa MST inclusion actually verifies or what a 'decision function' would check. It categorizes itself as a 'compliance_mandate' compute node but gives no specific verb+resource statement, and nothing distinguishes it from nearby siblings like verify_disclosure_inclusion, verify_merkle_batch, or verify_eth_state_proof.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage direction is an input constraint ('Use synthetic or anonymised inputs only') and the compute-mode mechanics (auto/server/browser). There is no statement of when to reach for this tool versus the many other verify_* inclusion/proof tools, nor of prerequisites or preconditions for a successful check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_tempo_mpp_voucherTempo MPP Voucher & Receipt VerifierC
Read-onlyIdempotent
Inspect

Tempo MPP Voucher & Receipt Verifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-594-tempo-mpp-voucher-receipt-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
memoYes
reasonsYes
receiptYes
voucherYes
challengeYes
scope_noteYes

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the bar is lower. The description still adds genuinely non-structured context: deterministic execution, transient processing with no storage/logging/retention, and that an AP2 artifact with execution_hash is exported for chain provenance. The compute-mode paragraph largely duplicates the schema's own compute description and earns no credit, but the privacy and provenance disclosures are real additions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense run-on chain of boilerplate (compute binding, Cloudflare Workers, FV-status snapshot, artifact export) that leads with infrastructure rather than with what the tool verifies. A large share of the sentences are shared template filler that does not help an agent decide whether to invoke this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, for a node whose entire input payload is deferred to an external manifest, the description never defines what a valid voucher/receipt looks like, what checks are applied, or what evidence an agent must supply — leaving the core decision function opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; baseline is 3. The description adds no meaning beyond that — notably it never hints at what fields belong in policy_parameters for a voucher/receipt check, so it does not compensate for the schema's vague "See the tool's manifest" pointer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ("Tempo MPP Voucher & Receipt Verifier") and labels it a "compute node (compliance_control)" without ever saying what a Tempo MPP voucher is, what property is verified, or what makes a verification pass or fail. An agent learns nothing about the resource beyond the name itself, and no sibling (e.g. reconcile_mpp_subscription, decode_mpp_session, verify_ap2_payment_receipt) is distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or alternative-tool guidance. The only directive is "Use synthetic or anonymised inputs only," which constrains input content but does not help select this tool over the many other verify_* and tempo/mpp sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_timestamp_attestationTimestamp Attestation VerifierC
Read-onlyIdempotent
Inspect

Timestamp Attestation Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-121-document-integrity-anchor. Open at: https://ainumbers.co/chaingraph/art-122-timestamp-attestation-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
verifiedNo
algo_matchNo
hash_matchNo
ts_consistentNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses real behavioral context: deterministic execution, server-side Cloudflare Workers vs browser delegation semantics (including that gpu:true always delegates), transient non-stored/non-logged processing, a synthetic-input-only constraint, and that an AP2 artifact with execution_hash is exported for chain provenance. The main omission is that the actual verification semantics and failure modes are never described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a single unbroken run-on that repeats itself ('OpenChainGraph compute node' twice in consecutive sentences) and pads with a documentation URL and a raw FV-status hash path that an agent cannot act on. Useful scoping content is buried mid-stream rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and annotations cover the safety profile. However, for a compliance verification tool with zero required parameters and a reference to a manifest for policy_parameters fields, the description omits what constitutes a passing/failing attestation, leaving the core decision semantics undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description adds only marginal value, mentioning the compute default/forced-browser behavior and the upstream artifact that supplies parent hashes; it says nothing about what fields policy_parameters expects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a verb+resource only through the title ('Timestamp Attestation Verifier') and then labels it a 'compute node (compliance_mandate)' without explaining what is verified or against what. It does hint at the resource domain by naming the consumed upstream artifact (art-121-document-integrity-anchor) and the emitted AP2 artifact with execution_hash, but gives no sibling differentiation against the many other verify_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is operational guidance (use 'auto' vs 'browser' compute, synthetic/anonymised inputs only), but nothing about when to call this tool versus alternatives such as verify_execution_hash, verify_anchored_extract, or verify_content_credential_signature. No prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_trade_document_setTrade Document Provenance & Consistency VerifierC
Read-onlyIdempotent
Inspect

Trade Document Provenance & Consistency Verifier: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-52-digital-trade-fit-diagnostic, art-54-digital-trade-rules-checker. Output feeds: cry-04-merkle-batch-verifier, art-10-amla-transaction-typology-risk-scorer, ml-03-timeseries-anomaly-detector. Open at: https://ainumbers.co/chaingraph/art-55-trade-document-provenance-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
doc_countNo
mismatchesNo
tbml_flagsNo
merkle_rootNo
consistency_verdictNo
invoicing_deviation_pctNo

TDQS

C2.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description does add genuinely useful non-annotation context: inputs are processed transiently and not stored/logged/retained, synthetic/anonymised inputs only, deterministic execution, and gpu:true nodes always delegating to the browser. It stops short of stating anything about the verification outcome or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a run-on of infrastructure boilerplate, provenance hashes, downstream feed lists, a URL and an FV-status path, with the actual purpose buried. Only the leading phrase is front-loaded; the rest is uncollapsed metadata that does not help an agent decide or call correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover the safety profile, so return values and risk need not be explained. However, for a verification tool the description leaves the core behavior opaque and gives no help populating policy_parameters beyond 'see the tool's manifest', which is the one piece an agent most needs to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, making 3 the baseline. The description corroborates the compute semantics (auto/server/browser, browser delegation URL, gpu delegation) but adds no new detail about policy_parameters, which the schema explicitly defers to an external manifest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description largely restates the title ('Trade Document Provenance & Consistency Verifier: OpenChainGraph compute node') and then pivots to compute-routing plumbing rather than stating what the verification actually checks. It never says which documents are examined, what consistency or provenance properties are validated, or what the result means. The only concrete functional detail is that it 'Exports an AP2 artifact with execution_hash for chain provenance,' which is closer to a side effect than a purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to close siblings such as check_digital_trade_rules, examine_lc_document_presentation, or run_digital_trade_fit. The upstream/downstream artifact lists (art-52, art-54 / cry-04, art-10, ml-03) hint at pipeline position but never state the condition that selects this tool over an alternative. Compute-mode guidance is really parameter behavior, not tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_trid_apr_accuracyTRID APR Accuracy VerifierB
Read-onlyIdempotent
Inspect

TRID APR Accuracy Verifier: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-215-reg-z-appendix-j-apr. Open at: https://ainumbers.co/chaingraph/art-217-trid-apr-accuracy.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
verdictNo
headroom_pctNo
tolerance_pctNo
actual_apr_pctNo
difference_pctNo
regulatory_basisNo
within_toleranceNo
disclosed_apr_pctNo
abs_difference_pctNo
irregularity_reasonsNo
is_irregular_transactionNo

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (which already declare readOnly/idempotent/non-destructive), the description adds meaningful behavior: inputs are processed transiently and not stored or logged, an AP2 artifact with execution_hash is exported for provenance, upstream art-215 must be consumed, and the FV-status receipt verifies offline. These are real operational traits an agent needs, though return/response shape is left to the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense run-on that repeats the title, restates 'compute node' twice, and embeds a 64-character hash and a full URL inline. The valuable content (compute modes, transient processing, provenance export) is buried mid-paragraph rather than front-loaded, so the signal-to-noise ratio is poor.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description reasonably covers execution modes, chaining prerequisites, and provenance export. The critical gap is that the substantive input surface (policy_parameters field names) is externalized to an unlinked 'manifest,' so an agent cannot know what to send for the actual decision function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; the description's discussion of compute modes merely duplicates the schema. The one parameter that matters most functionally, policy_parameters, is deferred to 'See the tool's manifest for field names,' adding no field-level semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and first sentence restate the tool name ('TRID APR Accuracy Verifier: OpenChainGraph compute node'), and the body is dominated by infrastructure boilerplate about compute modes and provenance rather than what the verification actually computes. The verb+resource is legible from the name, but the description does not explain the TRID APR accuracy test itself or how it differs from near-siblings like compute_trid_tolerance_cure or compute_reg_z_appendix_j_apr.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives usable conditional guidance for the compute modes (auto/server/browser, gpu:true delegation) and one input constraint ('Use synthetic or anonymised inputs only'). However, it offers no routing guidance against sibling verifiers/computers, and no statement of when this verifier is the right tool versus the adjacent APR tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_webbotauth_signatureWeb Bot Auth Signature Verifier (RFC 9421)B
Read-onlyIdempotent
Inspect

Web Bot Auth Signature Verifier (RFC 9421): OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Output feeds: art-130-signature-directory-validator. Open at: https://ainumbers.co/chaingraph/art-129-webbotauth-signature-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful behavioral context beyond those annotations: transient input processing with no storage/logging/retention, server-side vs browser compute modes, and AP2 artifact export with execution_hash for provenance. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and front-loads the tool title, but much of it is ChainGraph platform boilerplate about compute modes, artifact export, FV-status snapshots, and URLs. These details do not help an agent select or invoke this particular signature verifier, and the core verifier purpose is buried amid infrastructure language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should explain return behavior. It partially does so by mentioning an exported AP2 artifact with execution_hash and a downstream feed, but it does not say what a verification result contains. It also defers policy_parameters field names to an external manifest, leaving the most tool-specific input semantics incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the input schema. The description echoes the compute enum and explains the server/browser distinction, but adds no additional field-level meaning for parent_hashes, parent_tool_ids, or the generic policy_parameters object. This is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States 'Web Bot Auth Signature Verifier (RFC 9421)' — a specific verb and standard, so an agent knows the core function. However, it does not distinguish the tool from nearby siblings such as check_webbotauth_nonce_replay or validate_signature_directory, and the surrounding ChainGraph compute-node framing adds noise rather than differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is given, and no alternative tool is named. The only usage constraints are 'Use synthetic or anonymised inputs only' and 'Output feeds: art-130-signature-directory-validator'; an agent cannot tell from the description when to choose this verifier over other Web Bot Auth or signature-validation siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_witness_cosignaturesWitness Cosignature VerifierC
Read-onlyIdempotent
Inspect

Witness Cosignature Verifier: OpenChainGraph compute node (cryptographic_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Open at: https://ainumbers.co/chaingraph/art-424-witness-cosignature-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
checksNo
parsedNo
__asyncNo
thresholdNo
log_originNo
not_provenNo
witness_keysNo
anchored_hashNo

TDQS

C2.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real context: deterministic execution, transient processing with no storage/logging, the AP2 artifact with execution_hash for chain provenance, and the offline-verifiable FV-status snapshot. It does not disclose what constitutes a passing or failing verification, but the data-handling and provenance traits are genuinely useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It opens by repeating the title, then front-loads platform boilerplate (Workers, gpu flags, browser delegation) instead of the verification semantics, and closes with a long snapshot-not-a-subscription sentence and a raw URL. Much of the text is reusable template copy rather than information about this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the chaining parameters are covered by the schema. However, for a domain verification tool with nested policy_parameters, the description never explains what is being verified or how the policy inputs drive the decision, leaving the substantive semantics undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description only restates the compute-mode semantics already in the schema and adds nothing about policy_parameters content, deferring to an unlinked 'manifest'. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title ('verify witness cosignatures') carries the actual purpose; the description itself just labels the tool as an 'OpenChainGraph compute node (cryptographic_mandate)' and spends its words on platform mechanics. It never states what a witness cosignature is, what is being verified against, or how this differs from sibling verifiers like verify_timestamp_attestation or verify_webbotauth_signature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no named alternative among the many sibling verify_* tools. The only routing information is the compute-mode mechanic, which governs execution location rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_x402_signer_recoveryx402 Signer Recovery VerifierB
Read-onlyIdempotent
Inspect

x402 Signer Recovery Verifier: OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, logged, or retained. Use synthetic or anonymised inputs only. Exports an AP2 artifact with execution_hash for chain provenance. Consumes upstream artifacts from: art-590-x402-eip712-digest-recomputer. Open at: https://ainumbers.co/chaingraph/art-591-x402-signer-recovery-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/dfdd7083d50dfec46270d5ca2c4a06852efd98bdc1ae8d20e3d3b191e9b14ac7.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.

ParametersJSON Schema
NameRequiredDescriptionDefault
computeNoCompute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate.
parent_hashesNoexecution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export).
parent_tool_idsNotool_id values matching parent_hashes, in the same order.
policy_parametersNoInput parameters for this tool's decision function. For gpu:false nodes with a registered kernel, these are computed server-side when compute is "auto" or "server". See the tool's manifest for field names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
digestNo
reasonsNo
verdictNo
scope_noteNo
recovery_idNo
claimed_fromNo
recovered_signerNo
recovery_id_sourceNo
recovered_signer_matches_claimed_fromNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, yet the description adds genuinely new behavioral context: transient processing with no storage, logging, or retention; the compute:'auto'/'server'/'browser' execution split with browser delegation URLs for gpu:true nodes; and the export of an AP2 artifact with execution_hash for provenance. The provenance-chaining and FV-status snapshot note ('a snapshot, not a subscription; verifies offline') further clarify execution behavior beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Segments are labeled and the identity is front-loaded, but there is visible redundancy ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') and a full 64-hex FV-status hash is inlined, taxing readability. Some of the platform boilerplate (compute binding) repeats what the schema already states.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description needn't explain return values, and it covers execution modes, data-handling guarantees, artifact chaining, and a resolution URL. Given the complexity of a compliance-control compute node, what is missing is only the substantive pass/fail semantics of the signer-recovery check, which is a modest gap relative to what is supplied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters fully. The description restates the compute-mode semantics that the schema enum description already carries and does not enrich parent_hashes/parent_tool_ids ordering or policy_parameters fields beyond 'see the tool's manifest'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name/title identify a specific verb+resource (verify x402 signer recovery), and the description indirectly scopes the node by naming its upstream artifact (art-590-x402-eip712-digest-recomputer) and its output (AP2 artifact with execution_hash). However, the body never states in plain terms what the verification actually asserts (recovering/validating a signer against an x402 EIP-712 digest), and it never distinguishes this tool from x402 siblings such as decode_x402_payment, verify_x402_deferred_handshake, or verify_kya_x402_scope. Purpose is inferable but not plainly articulated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use/when-not-to-use statement or named alternative, but the 'Consumes upstream artifacts from: art-590-...' line implies a pipeline position, and 'Use synthetic or anonymised inputs only' gives one operating constraint. Usage is implied rather than stated, which lands at the minimum-viable level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workbook_csv_parseParse strict RFC 4180 CSV into workbook cellsA
Read-onlyIdempotent
Inspect

Parses CSV text with the SAME strict RFC 4180 parser as the tools/554 browser workbook -- quoted fields, embedded quotes/commas/newlines, CRLF -- and REJECTS malformed input rather than repairing it (deterministic beats forgiving for hash-stable digests). Numeric-looking and TRUE/FALSE cells are type-coerced; everything else stays a string. Returns the resulting A1-style cells (raw + evaluated value) plus the sheet's row/column extent, ready for workbook_evaluate or workbook_range_digest -- unless as_artifact is true, in which case it returns a full OCG v0.4 artifact instead (see as_artifact).

ParametersJSON Schema
NameRequiredDescriptionDefault
csvYesCSV text to parse.
provenanceNoOptional provenance metadata, only used when as_artifact is true. Never affects execution_hash.
as_artifactNoWhen true, returns a full OpenChainGraph v0.4 artifact (policy_parameters/output_payload/execution_hash/provenance) via the same exportArtifact() path as the tools/554 browser workbook's "Export as OCG Artifact" button, instead of this tool's normal bare payload. Default false.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond the annotations, including the strict RFC 4180 parsing, rejection of malformed input, type coercion of numeric/boolean values, output format (A1-style cells with raw+evaluated value and sheet extent), and the as_artifact behavior. It also explains the rationale for determinism. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately long but well-structured, front-loading the main purpose and then detailing key behaviors. Every sentence contributes useful information without being verbose. Could be slightly more terse, but it's effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 params, no output schema, nested objects), the description provides sufficient context about parsing behavior, output content (A1-style cells with raw and evaluated values, sheet extent), and the as_artifact variant. It also relates to sibling tools (workbook_evaluate/digest). It covers the essential aspects without needing an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the baseline is 3. The description adds value by clarifying that provenance only affects as_artifact mode and never the execution_hash, and that as_artifact changes the output format entirely. This goes beyond the schema's simple descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it parses CSV text using a strict RFC 4180 parser, distinguishing it from other parse tools by emphasizing the strictness and deterministic behavior for hash-stable digests. It also mentions type coercion and output format, making the purpose specific and distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (when strict parsing and deterministic results are needed) and how the output can be used with workbook_evaluate or workbook_range_digest. It also notes the as_artifact option. However, it does not explicitly state when not to use it or contrast with alternative parsing strategies beyond the mention of 'forgiving' parsers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workbook_evaluateEvaluate workbook cells (formulas + literals) and return computed valuesA
Read-onlyIdempotent
Inspect

Feeds a set of A1-style cells (formulas and/or literals) through the SAME headless evaluator the tools/554 browser workbook uses -- topo-sorted dependency graph, ~20 functions (SUM AVG MIN MAX COUNT COUNTIF IF AND OR NOT ROUND ABS CONCAT LEN LEFT RIGHT TRIM UPPER LOWER SUMIF), cycles resolve to "#CYCLE!" and any non-finite result to "#NUM!" rather than propagating. Returns the computed value of every supplied cell -- pure, no digest, no receipt -- unless as_artifact is true, in which case it returns a full OCG v0.4 artifact instead (see as_artifact).

ParametersJSON Schema
NameRequiredDescriptionDefault
cellsYesMap of A1-style cell ref (e.g. "B2") to raw value -- a formula string starts with "=" (e.g. "=SUM(A1:A3)"), anything else is a literal.
provenanceNoOptional provenance metadata, only used when as_artifact is true. Never affects execution_hash.
as_artifactNoWhen true, returns a full OpenChainGraph v0.4 artifact (policy_parameters/output_payload/execution_hash/provenance) via the same exportArtifact() path as the tools/554 browser workbook's "Export as OCG Artifact" button, instead of this tool's normal bare payload. Default false.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds significant behavioral details: topo-sorted dependency graph, specific functions list, cycles resolve to '#CYCLE!', non-finite results to '#NUM!', no digest/receipt unless as_artifact=true. This provides a clear understanding of how the tool operates beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the main purpose. It is structured into two sentences: one for behavior and one for output. While every sentence provides value, it could be slightly more concise by trimming less critical details (e.g., 'pure, no digest, no receipt'). Overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (formula evaluation, dependency graph, error handling, artifact mode), the description covers most aspects: functions, errors, output modes, and optional provenance. However, it lacks details on performance limits (e.g., maximum cells) and the exact structure of the artifact (briefly referenced). No output schema exists, so the description carries the burden, which it mostly satisfies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds essential context: for 'cells', it explains that formulas start with '=', and literals are anything else. For 'as_artifact', it specifies the return type (OCG v0.4 artifact) and export artifact path. For 'provenance', it clarifies it only matters when as_artifact is true and never affects execution_hash. This adds meaning beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool evaluates workbook cells (formulas and literals) and returns computed values. It specifies the evaluator (same as tools/554 browser workbook), mentions topological sorting, ~20 functions, and error handling (#CYCLE!, #NUM!). This distinguishes it from sibling tools like workbook_range_digest and workbook_csv_parse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it uses a headless evaluator for A1-style cells. It describes the functions and error handling. However, it does not explicitly state when to use this tool vs alternatives or when not to use it. Sibling tools exist for related tasks, but no exclusion criteria are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workbook_range_digestDigest a workbook range into a Spreadsheet Input Manifest range fragmentA
Read-onlyIdempotent
Inspect

Spreadsheet-range digest only; NOT the general artifact emitter (use emit_chaingraph_artifact to wrap arbitrary computation output — this tool's as_artifact mode covers whole-sheet workbook runs only). Evaluates the supplied cells (same evaluator as workbook_evaluate) and computes a canonical values_digest over one A1-style range (e.g. "B2:D9") -- the exact executionHash(values, {}) path the rest of OCG uses, per chaingraph/workbook/INPUT-MANIFEST.md (WB-2). Returns one ranges[] fragment of the Spreadsheet Input Manifest schema; assemble the full manifest (source.csv_digest, produced_by/produced_at) around it. Same range digested from the same cells in the tools/554 browser workbook always produces the same values_digest -- unless as_artifact is true, in which case it returns a full OCG v0.4 artifact over the WHOLE sheet instead of a single-range fragment (see as_artifact).

ParametersJSON Schema
NameRequiredDescriptionDefault
cellsYesMap of A1-style cell ref (e.g. "B2") to raw value -- a formula string starts with "=" (e.g. "=SUM(A1:A3)"), anything else is a literal.
rangeYesA1-style cell or range reference to digest, e.g. "B2" or "B2:D9".
semanticsNoFree-text pointer describing what this range means to the consuming policy_parameters.
provenanceNoOptional provenance metadata, only used when as_artifact is true. Never affects execution_hash.
as_artifactNoWhen true, returns a full OpenChainGraph v0.4 artifact (policy_parameters/output_payload/execution_hash/provenance) via the same exportArtifact() path as the tools/554 browser workbook's "Export as OCG Artifact" button, instead of this tool's normal bare payload. Default false.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive behavior; the description adds valuable context by specifying deterministic digest behavior, the exact executionHash(values, {}) path, and the as_artifact mode's whole-sheet exception. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized: scope guard, evaluation/hash detail, return-value usage, and deterministic-behavior caveat. Every clause adds information and there is no redundant boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description explains what the tool returns, how to assemble the full manifest, when behavior changes via as_artifact, and how it relates to sibling tools like emit_chaingraph_artifact and workbook_evaluate. This is sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds non-obvious parameter meaning by clarifying that as_artifact returns a full whole-sheet artifact instead of a single-range fragment, and by reinforcing the range format with an example. Remaining parameter details are adequately covered by the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('computes a canonical values_digest over one A1-style range') and a specific result ('Returns one ranges[] fragment of the Spreadsheet Input Manifest schema'). It also distinguishes itself from the general artifact emitter by naming emit_chaingraph_artifact as the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-not guidance: 'NOT the general artifact emitter (use emit_chaingraph_artifact...)' and explains that as_artifact mode is only for whole-sheet workbook runs. It also instructs on how to use the result by assembling the full manifest around the returned fragment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workbook_roundtrip_verifyVerify a pasted-back Excel round-trip against a Spreadsheet Input ManifestA
Read-onlyIdempotent
Inspect

Compares a WB-2 Spreadsheet Input Manifest (expected digests) against pasted-back CSV/TSV text per manifest range (observed, e.g. after a recompute in Excel) and returns an XLR-1 round-trip receipt -- result: "match"|"mismatch" plus a mismatches[] cell list when expected_by_ref text is also supplied. SAME comparator module as the tools/ round-trip page (XLR-2/XLR-3) -- byte-identical receipt for the same inputs. Paste-intake is untrusted: finite-gate (#NUM! for NaN/Infinity) and CSV-injection sanitization apply identically to WB-1's CSV import. Verify-only -- never operates Excel, never ingests .xlsx.

ParametersJSON Schema
NameRequiredDescriptionDefault
manifestYesWB-2 Spreadsheet Input Manifest object (input-manifest.schema.json) -- the expected side.
produced_atYesISO-8601 timestamp -- required, no default (pure: no wall-clock read).
produced_byYesIdentity slot for who/what produced this receipt -- required, no default (pure: no identity read).
expected_by_refNoOPTIONAL map of manifest range ref -> the actual expected CSV/TSV text (e.g. the pq-export the manifest was built from). Supplying it resolves a digest mismatch to per-cell mismatches[] entries instead of a single range-level entry.
observed_by_refYesMap of manifest range ref -> pasted-back CSV/TSV text for that range (e.g. { "B2:C3": "10,widget\r\n20,gadget\r\n" }). One entry required per manifest.ranges[].ref.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is already established. The description adds meaningful behavioral context: it states this is verify-only, never operates Excel, never ingests .xlsx, and explains that paste-intake is untrusted with finite-gate (#NUM! for NaN/Infinity) and CSV-injection sanitization applied identically to WB-1's CSV import. It also discloses that mismatches[] only appear when expected_by_ref is supplied, and that the receipt is byte-identical to the round-trip page comparator. This is rich behavioral disclosure complementing the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense two-sentence block covering purpose, comparator equivalence, security model, and conditionality of output. It is reasonably compact given the technical specificity required, and the most important facts (compare manifest vs pasted text, returns match/mismatch) are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is moderately complex with 5 parameters (4 required), a nested manifest object, and no output schema. The description compensates well: it explains the receipt format (result + mismatches[]), the conditional resolution behavior of expected_by_ref, the security sanitization, and the verification-only scope. It also clarifies it never touches Excel/.xlsx, which is important given the workbook_* sibling context. The only minor gap is no explicit statement about what a successful match receipt looks like beyond the result field, but the schema params are all fully described at 100% coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description doesn't need to carry the param-documentation burden. The description does add value beyond the schema: it explains that expected_by_ref resolves digest mismatches to per-cell mismatches[] entries rather than a single range-level entry, and that observed_by_ref requires one entry per manifest.ranges[].ref. These are causal/behavioral nuances the schema alone doesn't state. However, the description doesn't walk through each parameter, and the schema already documents all five thoroughly, so this sits at the baseline-plus level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+object ('Compares a WB-2 Spreadsheet Input Manifest against pasted-back CSV/TSV text') and states the exact output (XLR-1 round-trip receipt with result field). It clearly distinguishes from siblings by referencing the tools/ round-trip page (XLR-2/XLR-3) comparator and explicitly scoping to never operating Excel. The name and title already communicate the intent well, and the description reinforces it precisely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when this is used: 'against pasted-back CSV/TSV text per manifest range (observed, e.g. after a recompute in Excel)'. It distinguishes itself from WB-1's CSV import ('SAME comparator module as the tools/ round-trip page'). It clearly delineates verify-only from other workbook operations (workbook_csv_parse, workbook_evaluate, workbook_range_digest siblings). However, it does not explicitly list exclusions or name an alternative tool to use instead in other scenarios (e.g., when verifying digests rather than pasted text, or when .xlsx ingestion is needed), relying instead on negative scoping ('never operates Excel'). This leaves some ambiguity about when NOT to use it beyond the Excel .xlsx boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedtest_hoepa_high_cost3 fields changed
      • changedOutput schema / properties / points_and_fees / type
        Previous value: -"integer"New value: +"number"
      • changedOutput schema / properties / points_fees_floor / type
        Previous value: -"integer"New value: +"number"
      • changedOutput schema / properties / points_fees_limit / type
        Previous value: -"integer"New value: +"number"
  2. 1 tool update
    • Changedbuild_workflow_links1 field changed
      • changedInput schema / properties / chain / description
        Previous value: -"Name of a pre-defined chain (one of 369 — enumerate with find_chain). Mutually exclusive with steps."New value: +"Name of a pre-defined chain (one of 368 — enumerate with find_chain). Mutually exclusive with steps."
  3. 1 tool update
    • Addedcompute_pta_verifier
  4. 1 tool update
    • Addedassess_exam_readiness_pack
  5. 1 tool update
    • Changedprecheck_reserve_attestation15 fields changed
      • addedOutput schema / additionalProperties
        Added value: +false
      • changedOutput schema / properties / aicpa_2025_score_pct / type
        Previous value: -"integer"New value: +"number"
      • addedOutput schema / properties / asset_results / items
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "eligibility": {
        +      "type": "string"
        +    },
        +    "has_fail": {
        +      "type": "boolean"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "pct": {
        +      "type": "number"
        +    },
        +    "type": {
        +      "type": "string"
        +    },
        +    "usd": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "eligibility",
        +    "has_fail",
        +    "issues",
        +    "pct",
        +    "type",
        +    "usd"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / attestation_readiness_determination / enum
        Added value: +[
        +  "FAIL",
        +  "INDETERMINATE",
        +  "PASS"
        +]
      • changedOutput schema / properties / conditional_assets_usd / type
        Previous value: -"integer"New value: +"number"
      • changedOutput schema / properties / coverage_ratio_pct / type
        Previous value: -"integer"New value: +[
        +  "null",
        +  "number"
        +]
      • addedOutput schema / properties / failing_dimensions / items / additionalProperties
        Added value: +false
      • addedOutput schema / properties / failing_dimensions / items / required
        Added value: +[
        +  "detail",
        +  "dim",
        +  "ref"
        +]
      • changedOutput schema / properties / prohibited_assets_usd / type
        Previous value: -"integer"New value: +"number"
      • changedOutput schema / properties / reserve_shortfall_usd / type
        Previous value: -"integer"New value: +[
        +  "null",
        +  "number"
        +]
      • changedOutput schema / properties / total_liabilities_usd / type
        Previous value: -"integer"New value: +"number"
      • changedOutput schema / properties / total_reserves_usd / type
        Previous value: -"integer"New value: +"number"
      • addedOutput schema / properties / warnings
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "aicpa_2025_score_pct",
        +  "applicable_deadline",
        +  "asset_results",
        +  "attestation_readiness_determination",
        +  "conditional_assets_usd",
        +  "coverage_ratio_pct",
        +  "failing_dimensions",
        +  "prohibited_assets_usd",
        +  "regulatory_framework",
        +  "reserve_shortfall_usd",
        +  "total_liabilities_usd",
        +  "total_reserves_usd",
        +  "warnings"
        +]
      • addedOutput schema / x_schema_provenance
        Added value: +"derived via node scripts/check-output-schema-coverage.mjs --derive (CCPP-FIX-ART06-1, 2026-09-08) — §2.7 truth maintenance: declared output_schema re-aligned to the kernel's fixture-observed output after the explicit-absence fix (null coverage/shortfall, INDETERMINATE state)"
  6. 2 tool updates
    • Changeddiagnose_canton_readiness1 field changed
      • changedOutput schema / properties / gaps / items / enum
        Previous value: -[
        -  "aml_kya",
        -  "capital_governance",
        -  "cash_leg",
        -  "custody_eligibility",
        -  "privacy_disclosure"
        -]New value: +[
        +  "aml_kya",
        +  "capital_governance",
        +  "cash_leg",
        +  "custody_eligibility",
        +  "privacy_disclosure",
        +  "settlement_ops"
        +]
    • Changedlint_cbom_structure1 field changed
      • changedOutput schema / properties / findings / items / properties / matched_pattern / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
  7. 1 tool update
    • Addedcompute_direct_indexing_fit_screen
  8. 4 tool updates
    • Addedcompute_education_funding_gap_calculator
    • Addedcompute_ltc_funding_comparator
    • Addedcompute_pack_dependency_map
    • Addedcompute_wash_sale_window_guard
  9. 1 tool update
    • Addedcompute_rule_605_publication_composer
  10. 27 tool updates
    • Changedanalyze_prediction_market1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "break_even_probability": {
        +      "type": "number"
        +    },
        +    "brier_score": {
        +      "type": [
        +        "null",
        +        "number"
        +      ]
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "entry_price": {
        +      "type": "number"
        +    },
        +    "expected_value": {
        +      "type": [
        +        "null",
        +        "number"
        +      ]
        +    },
        +    "fee_paid": {
        +      "type": "number"
        +    },
        +    "half_kelly_stake": {
        +      "type": [
        +        "null",
        +        "number"
        +      ]
        +    },
        +    "implied_probability": {
        +      "type": "number"
        +    },
        +    "kelly_fraction": {
        +      "type": [
        +        "null",
        +        "number"
        +      ]
        +    },
        +    "log_score": {
        +      "type": [
        +        "null",
        +        "number"
        +      ]
        +    },
        +    "mode": {
        +      "enum": [
        +        "binary",
        +        "scalar"
        +      ],
        +      "type": "string"
        +    },
        +    "n_contracts": {
        +      "type": "number"
        +    },
        +    "no_vig_fair_value": {
        +      "type": "number"
        +    },
        +    "odds_american": {
        +      "type": "number"
        +    },
        +    "odds_decimal": {
        +      "type": "number"
        +    },
        +    "odds_fractional": {
        +      "type": "string"
        +    },
        +    "payout": {
        +      "type": "number"
        +    },
        +    "pnl": {
        +      "type": "number"
        +    },
        +    "settlement_clamped": {
        +      "type": "number"
        +    },
        +    "settlement_delta": {
        +      "type": "number"
        +    },
        +    "settlement_in_range": {
        +      "type": "boolean"
        +    },
        +    "settlement_value": {
        +      "type": "number"
        +    },
        +    "side": {
        +      "enum": [
        +        "long",
        +        "yes"
        +      ],
        +      "type": "string"
        +    },
        +    "strike": {
        +      "type": "number"
        +    },
        +    "unit_value": {
        +      "type": "number"
        +    },
        +    "venue": {
        +      "enum": [
        +        "cme_event",
        +        "kalshi",
        +        "polymarket"
        +      ],
        +      "type": "string"
        +    },
        +    "won": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "disclaimer",
        +    "mode",
        +    "n_contracts",
        +    "pnl",
        +    "side",
        +    "venue"
        +  ],
        +  "type": "object"
        +}
    • Changedcompile_nav_error_evidence_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "affected_period": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "days": {
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "end_date": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "start_date": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "days",
        +        "end_date",
        +        "start_date"
        +      ],
        +      "type": "object"
        +    },
        +    "cited_receipts": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "execution_hash": {
        +            "type": "string"
        +          },
        +          "role": {
        +            "enum": [
        +              "materiality_test",
        +              "nav_recompute",
        +              "positions"
        +            ],
        +            "type": "string"
        +          },
        +          "tool_id": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "execution_hash",
        +          "role",
        +          "tool_id"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "correction": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "compensation_paid_without_delay": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "correction_method": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "de_minimis_applied": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "financial_intermediary_pass_through": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "compensation_paid_without_delay",
        +        "correction_method",
        +        "de_minimis_applied",
        +        "financial_intermediary_pass_through"
        +      ],
        +      "type": "object"
        +    },
        +    "declared_policy": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "detection_date": {
        +      "type": "string"
        +    },
        +    "error": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "fund_id": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "industry_convention": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "materiality_verdict": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "not_proven": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "detail",
        +          "item"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "notification": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "notification_date": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "notification_window_weeks": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "basis": {
        +              "type": "string"
        +            },
        +            "max": {
        +              "type": "number"
        +            },
        +            "min": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "basis",
        +            "max",
        +            "min"
        +          ],
        +          "type": "object"
        +        },
        +        "notified_to_cssf": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "notification_date",
        +        "notification_window_weeks",
        +        "notified_to_cssf"
        +      ],
        +      "type": "object"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "reprocessing_need_indicated": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "structural_error": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "affected_period",
        +    "cited_receipts",
        +    "correction",
        +    "declared_policy",
        +    "detection_date",
        +    "error",
        +    "fence",
        +    "fund_id",
        +    "industry_convention",
        +    "materiality_verdict",
        +    "not_proven",
        +    "notification",
        +    "regulatory_framework",
        +    "reprocessing_need_indicated",
        +    "structural_error",
        +    "warnings"
        +  ],
        +  "type": "object"
        +}
    • Changedcompose_ap2_prompt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "audience": {
        +      "type": "string"
        +    },
        +    "claude_deeplink": {
        +      "type": "string"
        +    },
        +    "generated_prompt": {
        +      "type": "string"
        +    },
        +    "generated_prompt_length": {
        +      "type": "number"
        +    },
        +    "include_citations": {
        +      "type": "boolean"
        +    },
        +    "mandate_type_matched": {
        +      "type": "string"
        +    },
        +    "source_execution_hash": {
        +      "type": "string"
        +    },
        +    "source_tool_id": {
        +      "type": "string"
        +    },
        +    "task": {
        +      "type": "string"
        +    },
        +    "tone": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "audience",
        +    "claude_deeplink",
        +    "generated_prompt",
        +    "generated_prompt_length",
        +    "include_citations",
        +    "mandate_type_matched",
        +    "source_execution_hash",
        +    "source_tool_id",
        +    "task",
        +    "tone"
        +  ],
        +  "type": "object"
        +}
    • Addedcompute_best_execution_evidence_pack
    • Addedcompute_consolidation_cta
    • Changedcompute_forecast_accuracy_score1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "accuracy_class": {
        +      "enum": [
        +        "EXCELLENT",
        +        "GOOD",
        +        "POOR"
        +      ],
        +      "type": "string"
        +    },
        +    "base_rate": {
        +      "type": "number"
        +    },
        +    "brier_reference": {
        +      "type": "number"
        +    },
        +    "brier_score": {
        +      "type": "number"
        +    },
        +    "brier_skill_score": {
        +      "type": "number"
        +    },
        +    "category_breakdown": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "brier_score": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "category": {
        +            "enum": [
        +              "economic_indicator",
        +              "election_political",
        +              "gaming_style_event",
        +              "other",
        +              "sports_competition",
        +              "weather_climate"
        +            ],
        +            "type": "string"
        +          },
        +          "log_score": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "n": {
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "brier_score",
        +          "category",
        +          "log_score",
        +          "n"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "category_note": {
        +      "type": "string"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "log_score": {
        +      "type": "number"
        +    },
        +    "n": {
        +      "type": "number"
        +    },
        +    "reference_probability": {
        +      "type": "number"
        +    },
        +    "scoring_note": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "items": {
        +        "enum": [
        +          "DEFAULT_SAMPLE_USED",
        +          "HIGH_CONFIDENCE_MISS",
        +          "INSUFFICIENT_SAMPLE_SIZE",
        +          "ZERO_VARIANCE_SUSPICIOUS"
        +        ],
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "accuracy_class",
        +    "base_rate",
        +    "brier_reference",
        +    "brier_score",
        +    "brier_skill_score",
        +    "category_breakdown",
        +    "category_note",
        +    "disclaimer",
        +    "log_score",
        +    "n",
        +    "reference_probability",
        +    "scoring_note",
        +    "warnings"
        +  ],
        +  "type": "object"
        +}
    • Addedcompute_intercompany_elimination_netting
    • Changedcompute_ipfs_cid1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "byte_length": {
        +      "type": "number"
        +    },
        +    "cid": {
        +      "type": "string"
        +    },
        +    "cid_bytes_hex": {
        +      "type": "string"
        +    },
        +    "codec": {
        +      "enum": [
        +        "dag-pb",
        +        "raw"
        +      ],
        +      "type": "string"
        +    },
        +    "codec_code": {
        +      "type": "string"
        +    },
        +    "digest_hex": {
        +      "type": "string"
        +    },
        +    "digest_length": {
        +      "type": "number"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "known_vector_verified": {
        +      "type": "boolean"
        +    },
        +    "multihash_fn": {
        +      "type": "string"
        +    },
        +    "multihash_fn_code": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "byte_length",
        +    "cid",
        +    "cid_bytes_hex",
        +    "codec",
        +    "codec_code",
        +    "digest_hex",
        +    "digest_length",
        +    "disclaimer",
        +    "known_vector_verified",
        +    "multihash_fn",
        +    "multihash_fn_code"
        +  ],
        +  "type": "object"
        +}
    • Changedcompute_perp_funding_implied_yield1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "chained": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    },
        +    "clamp_pct": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "domain_errors": {
        +      "items": {
        +        "enum": [
        +          "INVALID_FUNDING_MECHANISM",
        +          "INVALID_MARK_PRICE",
        +          "INVALID_PREV_FUNDING_HASH"
        +        ],
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "funding_mechanism": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "funding_payment": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "funding_payment_direction": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "funding_rate_pct": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "implied_annual_funding_yield_pct": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "index_price": {
        +      "type": "number"
        +    },
        +    "interest_rate_pct": {
        +      "type": "number"
        +    },
        +    "interval_hours": {
        +      "type": "number"
        +    },
        +    "mark_price": {
        +      "type": "number"
        +    },
        +    "mechanism_note": {
        +      "type": "string"
        +    },
        +    "periods_per_year": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "position_notional": {
        +      "type": "number"
        +    },
        +    "position_side": {
        +      "enum": [
        +        "long",
        +        "short"
        +      ],
        +      "type": "string"
        +    },
        +    "premium_index_pct": {
        +      "type": "number"
        +    },
        +    "prev_funding_hash": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "sign_convention_note": {
        +      "type": "string"
        +    },
        +    "venue": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "chained",
        +    "domain_errors",
        +    "funding_mechanism",
        +    "funding_payment",
        +    "funding_payment_direction",
        +    "funding_rate_pct",
        +    "implied_annual_funding_yield_pct",
        +    "interval_hours",
        +    "periods_per_year",
        +    "position_side",
        +    "prev_funding_hash",
        +    "scope_note",
        +    "venue"
        +  ],
        +  "type": "object"
        +}
    • Changedcompute_perp_margin1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "buffer": {
        +      "type": "number"
        +    },
        +    "buffer_pct": {
        +      "type": "number"
        +    },
        +    "cross_margin_efficiency": {
        +      "type": [
        +        "null",
        +        "object"
        +      ]
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "distance_to_liq_pct": {
        +      "type": "number"
        +    },
        +    "entry_price": {
        +      "type": "number"
        +    },
        +    "health": {
        +      "enum": [
        +        "AMBER",
        +        "GREEN"
        +      ],
        +      "type": "string"
        +    },
        +    "imr_pct": {
        +      "type": "number"
        +    },
        +    "initial_margin": {
        +      "type": "number"
        +    },
        +    "leverage": {
        +      "type": "number"
        +    },
        +    "liq_price": {
        +      "type": "number"
        +    },
        +    "maintenance_threshold": {
        +      "type": "number"
        +    },
        +    "margin_balance": {
        +      "type": "number"
        +    },
        +    "mark_price": {
        +      "type": "number"
        +    },
        +    "mark_price_note": {
        +      "type": "string"
        +    },
        +    "mmr_pct": {
        +      "type": "number"
        +    },
        +    "mode": {
        +      "enum": [
        +        "cross",
        +        "isolated"
        +      ],
        +      "type": "string"
        +    },
        +    "notional": {
        +      "type": "number"
        +    },
        +    "portfolio_margin_note": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "position_size": {
        +      "type": "number"
        +    },
        +    "side": {
        +      "enum": [
        +        "long",
        +        "short"
        +      ],
        +      "type": "string"
        +    },
        +    "unrealized_pnl": {
        +      "type": "number"
        +    },
        +    "venue": {
        +      "enum": [
        +        "dydx_v4",
        +        "hyperliquid"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "buffer",
        +    "buffer_pct",
        +    "cross_margin_efficiency",
        +    "disclaimer",
        +    "distance_to_liq_pct",
        +    "entry_price",
        +    "health",
        +    "imr_pct",
        +    "initial_margin",
        +    "leverage",
        +    "liq_price",
        +    "maintenance_threshold",
        +    "margin_balance",
        +    "mark_price",
        +    "mark_price_note",
        +    "mmr_pct",
        +    "mode",
        +    "notional",
        +    "portfolio_margin_note",
        +    "position_size",
        +    "side",
        +    "unrealized_pnl",
        +    "venue"
        +  ],
        +  "type": "object"
        +}
    • Changeddiagnose_canton_readiness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "domain_scores": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "aml_kya": {
        +          "type": "number"
        +        },
        +        "capital_governance": {
        +          "type": "number"
        +        },
        +        "cash_leg": {
        +          "type": "number"
        +        },
        +        "custody_eligibility": {
        +          "type": "number"
        +        },
        +        "privacy_disclosure": {
        +          "type": "number"
        +        },
        +        "settlement_ops": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "aml_kya",
        +        "capital_governance",
        +        "cash_leg",
        +        "custody_eligibility",
        +        "privacy_disclosure",
        +        "settlement_ops"
        +      ],
        +      "type": "object"
        +    },
        +    "gaps": {
        +      "items": {
        +        "enum": [
        +          "aml_kya",
        +          "capital_governance",
        +          "cash_leg",
        +          "custody_eligibility",
        +          "privacy_disclosure"
        +        ],
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "total_score": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "domain_scores",
        +    "gaps",
        +    "total_score",
        +    "verdict"
        +  ],
        +  "type": "object"
        +}
    • Changedfind_prediction_arbitrage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "arb_exists": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    },
        +    "capital_deployed": {
        +      "type": "number"
        +    },
        +    "consensus_gap": {
        +      "type": "number"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "fee_a": {
        +      "type": "number"
        +    },
        +    "fee_b": {
        +      "type": "number"
        +    },
        +    "gross_profit": {
        +      "type": "number"
        +    },
        +    "gross_spread": {
        +      "type": "number"
        +    },
        +    "gross_spread_pct": {
        +      "type": "number"
        +    },
        +    "implied_prob_yes_a": {
        +      "type": "number"
        +    },
        +    "implied_prob_yes_b": {
        +      "type": "number"
        +    },
        +    "k_contracts": {
        +      "type": "number"
        +    },
        +    "min_spread_to_break_even": {
        +      "type": "number"
        +    },
        +    "net_edge_pct": {
        +      "type": "number"
        +    },
        +    "net_profit": {
        +      "type": "number"
        +    },
        +    "no_price_b": {
        +      "type": "number"
        +    },
        +    "payout": {
        +      "type": "number"
        +    },
        +    "stake_total": {
        +      "type": "number"
        +    },
        +    "total_fees": {
        +      "type": "number"
        +    },
        +    "venue_a": {
        +      "enum": [
        +        "kalshi",
        +        "polymarket"
        +      ],
        +      "type": "string"
        +    },
        +    "venue_b": {
        +      "enum": [
        +        "cme_event",
        +        "kalshi"
        +      ],
        +      "type": "string"
        +    },
        +    "yes_price_a": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "arb_exists",
        +    "capital_deployed",
        +    "consensus_gap",
        +    "disclaimer",
        +    "fee_a",
        +    "fee_b",
        +    "gross_profit",
        +    "gross_spread",
        +    "gross_spread_pct",
        +    "implied_prob_yes_a",
        +    "implied_prob_yes_b",
        +    "k_contracts",
        +    "min_spread_to_break_even",
        +    "net_edge_pct",
        +    "net_profit",
        +    "no_price_b",
        +    "payout",
        +    "stake_total",
        +    "total_fees",
        +    "venue_a",
        +    "venue_b",
        +    "yes_price_a"
        +  ],
        +  "type": "object"
        +}
    • Changedgenerate_attribution_string1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "errors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "json_ld": {
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "license_name": {
        +      "type": "string"
        +    },
        +    "license_spdx": {
        +      "type": "string"
        +    },
        +    "license_url": {
        +      "type": "string"
        +    },
        +    "rdfa_html": {
        +      "type": "string"
        +    },
        +    "tasl_line": {
        +      "type": "string"
        +    },
        +    "valid": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "disclaimer",
        +    "errors",
        +    "json_ld",
        +    "rdfa_html",
        +    "tasl_line",
        +    "valid"
        +  ],
        +  "type": "object"
        +}
    • Changedmobilize_margin_collateral1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "collateral_detail": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "already_posted": {
        +            "type": "boolean"
        +          },
        +          "asset_type": {
        +            "type": "string"
        +          },
        +          "eligible_value": {
        +            "type": "number"
        +          },
        +          "hc": {
        +            "type": "number"
        +          },
        +          "ineligible": {
        +            "type": "boolean"
        +          },
        +          "mobilizable": {
        +            "type": "boolean"
        +          },
        +          "notional": {
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "already_posted",
        +          "asset_type",
        +          "eligible_value",
        +          "hc",
        +          "ineligible",
        +          "mobilizable",
        +          "notional"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "gap": {
        +      "type": "number"
        +    },
        +    "im_call": {
        +      "type": "number"
        +    },
        +    "shortfall": {
        +      "type": "boolean"
        +    },
        +    "total_mobilizable": {
        +      "type": "number"
        +    },
        +    "total_required": {
        +      "type": "number"
        +    },
        +    "vm_call": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "collateral_detail",
        +    "gap",
        +    "im_call",
        +    "shortfall",
        +    "total_mobilizable",
        +    "total_required",
        +    "vm_call"
        +  ],
        +  "type": "object"
        +}
    • Changedmodel_perp_position1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "close_fee": {
        +      "type": "number"
        +    },
        +    "close_fee_type": {
        +      "type": "string"
        +    },
        +    "close_ts": {
        +      "type": "string"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "entry_price": {
        +      "type": "number"
        +    },
        +    "exit_price": {
        +      "type": "number"
        +    },
        +    "funding_rate_per_interval": {
        +      "type": "number"
        +    },
        +    "initial_margin": {
        +      "type": "number"
        +    },
        +    "leverage": {
        +      "type": "number"
        +    },
        +    "liq_price": {
        +      "type": "number"
        +    },
        +    "maintenance_threshold": {
        +      "type": "number"
        +    },
        +    "margin_return_pct": {
        +      "type": "number"
        +    },
        +    "margin_returned": {
        +      "type": "number"
        +    },
        +    "mmr_pct": {
        +      "type": "number"
        +    },
        +    "n_intervals": {
        +      "type": "number"
        +    },
        +    "notional": {
        +      "type": "number"
        +    },
        +    "open_fee": {
        +      "type": "number"
        +    },
        +    "open_fee_type": {
        +      "type": "string"
        +    },
        +    "open_ts": {
        +      "type": "string"
        +    },
        +    "position_size": {
        +      "type": "number"
        +    },
        +    "price_delta": {
        +      "type": "number"
        +    },
        +    "realized_pnl_gross": {
        +      "type": "number"
        +    },
        +    "realized_pnl_net": {
        +      "type": "number"
        +    },
        +    "side": {
        +      "enum": [
        +        "long",
        +        "short"
        +      ],
        +      "type": "string"
        +    },
        +    "total_fees": {
        +      "type": "number"
        +    },
        +    "total_funding_impact": {
        +      "type": "number"
        +    },
        +    "total_net_pnl": {
        +      "type": "number"
        +    },
        +    "venue": {
        +      "enum": [
        +        "binance",
        +        "hyperliquid"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "close_fee",
        +    "close_fee_type",
        +    "close_ts",
        +    "disclaimer",
        +    "entry_price",
        +    "exit_price",
        +    "funding_rate_per_interval",
        +    "initial_margin",
        +    "leverage",
        +    "liq_price",
        +    "maintenance_threshold",
        +    "margin_return_pct",
        +    "margin_returned",
        +    "mmr_pct",
        +    "n_intervals",
        +    "notional",
        +    "open_fee",
        +    "open_fee_type",
        +    "open_ts",
        +    "position_size",
        +    "price_delta",
        +    "realized_pnl_gross",
        +    "realized_pnl_net",
        +    "side",
        +    "total_fees",
        +    "total_funding_impact",
        +    "total_net_pnl",
        +    "venue"
        +  ],
        +  "type": "object"
        +}
    • Changedoptimize_settlement_capital1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "cet1_ratio": {
        +      "type": "number"
        +    },
        +    "cost_of_capital": {
        +      "type": "number"
        +    },
        +    "portfolio_bps": {
        +      "type": "number"
        +    },
        +    "rows": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "annual_saving_usd": {
        +            "type": "number"
        +          },
        +          "asset_class": {
        +            "type": "string"
        +          },
        +          "capital_freed_usd": {
        +            "type": "number"
        +          },
        +          "capital_legacy_usd": {
        +            "type": "number"
        +          },
        +          "ead_atomic_usd": {
        +            "type": "number"
        +          },
        +          "ead_legacy_usd": {
        +            "type": "number"
        +          },
        +          "flags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "instrument": {
        +            "type": "string"
        +          },
        +          "notional_usd": {
        +            "type": "number"
        +          },
        +          "pfe_legacy_usd": {
        +            "type": "number"
        +          },
        +          "rating": {
        +            "type": "string"
        +          },
        +          "risk_weight": {
        +            "type": "number"
        +          },
        +          "rwa_delta_usd": {
        +            "type": "number"
        +          },
        +          "rwa_legacy_usd": {
        +            "type": "number"
        +          },
        +          "saving_bps": {
        +            "type": "number"
        +          },
        +          "settle_days": {
        +            "type": "number"
        +          },
        +          "settlement_type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "annual_saving_usd",
        +          "asset_class",
        +          "capital_freed_usd",
        +          "capital_legacy_usd",
        +          "ead_atomic_usd",
        +          "ead_legacy_usd",
        +          "flags",
        +          "instrument",
        +          "notional_usd",
        +          "pfe_legacy_usd",
        +          "rating",
        +          "risk_weight",
        +          "rwa_delta_usd",
        +          "rwa_legacy_usd",
        +          "saving_bps",
        +          "settle_days",
        +          "settlement_type"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_annual_saving": {
        +      "type": "number"
        +    },
        +    "total_capital_freed": {
        +      "type": "number"
        +    },
        +    "total_notional_usd": {
        +      "type": "number"
        +    },
        +    "total_rwa_delta_usd": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "cet1_ratio",
        +    "cost_of_capital",
        +    "portfolio_bps",
        +    "rows",
        +    "total_annual_saving",
        +    "total_capital_freed",
        +    "total_notional_usd",
        +    "total_rwa_delta_usd",
        +    "verdict"
        +  ],
        +  "type": "object"
        +}
    • Changedpublish_fund_nav_head1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "chain_errors": {
        +      "type": "array"
        +    },
        +    "chain_valid": {
        +      "type": [
        +        "null",
        +        "boolean"
        +      ]
        +    },
        +    "chain_verified_by": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "errors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "head_hash": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "is_genesis": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "detail",
        +          "item"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "prev_head_hash": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "root": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "rotates_to": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "seq": {
        +      "type": [
        +        "null",
        +        "number"
        +      ]
        +    },
        +    "signature_valid": {
        +      "type": [
        +        "null",
        +        "boolean"
        +      ]
        +    },
        +    "signature_verified_by": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "signer": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "stream": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "structural_error": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "timestamp": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "chain_errors",
        +    "chain_valid",
        +    "chain_verified_by",
        +    "errors",
        +    "fence",
        +    "head_hash",
        +    "is_genesis",
        +    "not_proven",
        +    "prev_head_hash",
        +    "regulatory_framework",
        +    "root",
        +    "rotates_to",
        +    "seq",
        +    "signature_valid",
        +    "signature_verified_by",
        +    "signer",
        +    "stream",
        +    "structural_error",
        +    "timestamp"
        +  ],
        +  "type": "object"
        +}
    • Changedpublish_index_head1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "chain_errors": {
        +      "type": "array"
        +    },
        +    "chain_valid": {
        +      "type": [
        +        "null",
        +        "boolean"
        +      ]
        +    },
        +    "chain_verified_by": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "errors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "head_hash": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "is_genesis": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "detail",
        +          "item"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "prev_head_hash": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "root": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "rotates_to": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "seq": {
        +      "type": [
        +        "null",
        +        "number"
        +      ]
        +    },
        +    "signature_valid": {
        +      "type": [
        +        "null",
        +        "boolean"
        +      ]
        +    },
        +    "signature_verified_by": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "signer": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "stream": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "structural_error": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "timestamp": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "chain_errors",
        +    "chain_valid",
        +    "chain_verified_by",
        +    "errors",
        +    "fence",
        +    "head_hash",
        +    "is_genesis",
        +    "not_proven",
        +    "prev_head_hash",
        +    "regulatory_framework",
        +    "root",
        +    "rotates_to",
        +    "seq",
        +    "signature_valid",
        +    "signature_verified_by",
        +    "signer",
        +    "stream",
        +    "structural_error",
        +    "timestamp"
        +  ],
        +  "type": "object"
        +}
    • Changedpublish_market_mark_head1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "chain_errors": {
        +      "type": "array"
        +    },
        +    "chain_valid": {
        +      "type": [
        +        "null",
        +        "boolean"
        +      ]
        +    },
        +    "chain_verified_by": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "errors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "head_hash": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "is_genesis": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "detail",
        +          "item"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "prev_head_hash": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "root": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "rotates_to": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "seq": {
        +      "type": [
        +        "null",
        +        "number"
        +      ]
        +    },
        +    "signature_valid": {
        +      "type": [
        +        "null",
        +        "boolean"
        +      ]
        +    },
        +    "signature_verified_by": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "signer": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "stream": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "structural_error": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "timestamp": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "chain_errors",
        +    "chain_valid",
        +    "chain_verified_by",
        +    "errors",
        +    "fence",
        +    "head_hash",
        +    "is_genesis",
        +    "not_proven",
        +    "prev_head_hash",
        +    "regulatory_framework",
        +    "root",
        +    "rotates_to",
        +    "seq",
        +    "signature_valid",
        +    "signature_verified_by",
        +    "signer",
        +    "stream",
        +    "structural_error",
        +    "timestamp"
        +  ],
        +  "type": "object"
        +}
    • Changedpublish_model_risk_head1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "chain_errors": {
        +      "type": "array"
        +    },
        +    "chain_valid": {
        +      "type": [
        +        "null",
        +        "boolean"
        +      ]
        +    },
        +    "chain_verified_by": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "head_hash": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "is_genesis": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "detail",
        +          "item"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "prev_head_hash": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "root": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "rotates_to": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "seq": {
        +      "type": [
        +        "null",
        +        "number"
        +      ]
        +    },
        +    "signature_valid": {
        +      "type": [
        +        "null",
        +        "boolean"
        +      ]
        +    },
        +    "signature_verified_by": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "signer": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "stream": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "structural_error": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "timestamp": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "chain_errors",
        +    "chain_valid",
        +    "chain_verified_by",
        +    "fence",
        +    "head_hash",
        +    "is_genesis",
        +    "not_proven",
        +    "prev_head_hash",
        +    "regulatory_framework",
        +    "root",
        +    "rotates_to",
        +    "seq",
        +    "signature_valid",
        +    "signature_verified_by",
        +    "signer",
        +    "stream",
        +    "structural_error",
        +    "timestamp"
        +  ],
        +  "type": "object"
        +}
    • Changedvalidate_collateral_swap_eligibility1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "eligibility": {
        +      "type": "string"
        +    },
        +    "hqla_impact": {
        +      "type": "string"
        +    },
        +    "hqla_tier_a": {
        +      "type": "string"
        +    },
        +    "hqla_tier_b": {
        +      "type": "string"
        +    },
        +    "net_economic_value": {
        +      "type": "number"
        +    },
        +    "pacs008": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "instructed_amount": {
        +          "type": "string"
        +        },
        +        "settlement_date": {
        +          "type": "null"
        +        }
        +      },
        +      "required": [
        +        "instructed_amount",
        +        "settlement_date"
        +      ],
        +      "type": "object"
        +    },
        +    "value_a": {
        +      "type": "number"
        +    },
        +    "value_b": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "eligibility",
        +    "hqla_impact",
        +    "hqla_tier_a",
        +    "hqla_tier_b",
        +    "net_economic_value",
        +    "pacs008",
        +    "value_a",
        +    "value_b"
        +  ],
        +  "type": "object"
        +}
    • Changedvalidate_fund_collateral1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "adjusted_collateral_value": {
        +      "type": "number"
        +    },
        +    "eligibility": {
        +      "type": "string"
        +    },
        +    "haircut_applied": {
        +      "type": "number"
        +    },
        +    "hqla_tier": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "adjusted_collateral_value",
        +    "eligibility",
        +    "haircut_applied",
        +    "hqla_tier"
        +  ],
        +  "type": "object"
        +}
    • Changedvalidate_nft_metadata_art2091 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "all_pass": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    },
        +    "checks": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "field": {
        +            "type": "string"
        +          },
        +          "group": {
        +            "enum": [
        +              "license",
        +              "recommended",
        +              "required"
        +            ],
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "enum": [
        +              false,
        +              true
        +            ],
        +            "type": "boolean"
        +          },
        +          "warn": {
        +            "enum": [
        +              false,
        +              true
        +            ],
        +            "type": "boolean"
        +          }
        +        },
        +        "required": [
        +          "detail",
        +          "field",
        +          "group",
        +          "label",
        +          "pass",
        +          "warn"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "fail_count": {
        +      "type": "number"
        +    },
        +    "field_count": {
        +      "type": "number"
        +    },
        +    "required_pass": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    },
        +    "valid": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    },
        +    "warn_count": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "all_pass",
        +    "checks",
        +    "disclaimer",
        +    "fail_count",
        +    "field_count",
        +    "required_pass",
        +    "valid",
        +    "warn_count"
        +  ],
        +  "type": "object"
        +}
    • Changedvalidate_royalty_split1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "cap_bps": {
        +      "type": "number"
        +    },
        +    "config_hash": {
        +      "type": "string"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "mode": {
        +      "enum": [
        +        "bps",
        +        "percent"
        +      ],
        +      "type": "string"
        +    },
        +    "recipient_count": {
        +      "type": "number"
        +    },
        +    "rules": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "enum": [
        +              false,
        +              true
        +            ],
        +            "type": "boolean"
        +          }
        +        },
        +        "required": [
        +          "detail",
        +          "id",
        +          "label",
        +          "pass"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "sum": {
        +      "type": "number"
        +    },
        +    "valid": {
        +      "enum": [
        +        false,
        +        true
        +      ],
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "cap_bps",
        +    "config_hash",
        +    "disclaimer",
        +    "mode",
        +    "recipient_count",
        +    "rules",
        +    "sum",
        +    "valid"
        +  ],
        +  "type": "object"
        +}
    • Changedvalidate_tokenized_security_lifecycle1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "all_gaps": {
        +      "type": "array"
        +    },
        +    "critical_gaps": {
        +      "type": "array"
        +    },
        +    "event_matrix": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "coupon_payment": {
        +          "type": "string"
        +        },
        +        "issuance": {
        +          "type": "string"
        +        },
        +        "maturity_redemption": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "coupon_payment",
        +        "issuance",
        +        "maturity_redemption"
        +      ],
        +      "type": "object"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "verdict_badge": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "all_gaps",
        +    "critical_gaps",
        +    "event_matrix",
        +    "verdict",
        +    "verdict_badge"
        +  ],
        +  "type": "object"
        +}
    • Changedverify_erc2612_permit_binding1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "digest": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "diverging_field": {
        +      "type": [
        +        "null",
        +        "string"
        +      ]
        +    },
        +    "domain": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "chain_id": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "name": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "verifying_contract": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "version": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "chain_id",
        +        "name",
        +        "verifying_contract",
        +        "version"
        +      ],
        +      "type": "object"
        +    },
        +    "domain_separator": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "domain_typehash": {
        +      "type": "string"
        +    },
        +    "permit": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "deadline": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "nonce": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "owner": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "spender": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "value": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "deadline",
        +        "nonce",
        +        "owner",
        +        "spender",
        +        "value"
        +      ],
        +      "type": "object"
        +    },
        +    "permit_typehash": {
        +      "type": "string"
        +    },
        +    "reasons": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "recovered_signer": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "recovered_signer_matches_owner": {
        +      "type": [
        +        "boolean",
        +        "null"
        +      ]
        +    },
        +    "recovery_id": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "recovery_id_source": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "struct_hash": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "verdict": {
        +      "enum": [
        +        "BINDS",
        +        "DOES_NOT_BIND",
        +        "INDETERMINATE"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "digest",
        +    "diverging_field",
        +    "domain",
        +    "domain_separator",
        +    "domain_typehash",
        +    "permit",
        +    "permit_typehash",
        +    "reasons",
        +    "recovered_signer",
        +    "recovered_signer_matches_owner",
        +    "recovery_id",
        +    "recovery_id_source",
        +    "scope_note",
        +    "struct_hash",
        +    "verdict"
        +  ],
        +  "type": "object"
        +}
    • Changedverify_tempo_mpp_voucher1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "challenge": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "reasons": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "verdict": {
        +          "enum": [
        +            "CHALLENGE_INDETERMINATE",
        +            "CHALLENGE_WELLFORMED"
        +          ],
        +          "type": "string"
        +        },
        +        "wwwAuthenticate": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "reasons",
        +        "verdict",
        +        "wwwAuthenticate"
        +      ],
        +      "type": "object"
        +    },
        +    "memo": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "decodesUtf8": {
        +          "type": [
        +            "null",
        +            "boolean"
        +          ]
        +        },
        +        "isZero": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "reasons": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "referenceMatch": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "value": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "verdict": {
        +          "enum": [
        +            "MEMO_MALFORMED",
        +            "MEMO_SKIPPED",
        +            "MEMO_VALID"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "decodesUtf8",
        +        "isZero",
        +        "reasons",
        +        "referenceMatch",
        +        "value",
        +        "verdict"
        +      ],
        +      "type": "object"
        +    },
        +    "reasons": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "receipt": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "paymentReceipt": {
        +          "type": [
        +            "object",
        +            "null"
        +          ]
        +        },
        +        "verdict": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "paymentReceipt",
        +        "verdict"
        +      ],
        +      "type": "object"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "voucher": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "channelDeposit": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "channelId": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "channelSettled": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "cumulativeAmount": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "deltaAmount": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "digest": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "expectedSigner": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "onChainSettleNote": {
        +          "type": [
        +            "null",
        +            "string"
        +          ]
        +        },
        +        "protocolVersion": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "reasons": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "recoveredSigner": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "verdict": {
        +          "enum": [
        +            "VOUCHER_EXCEEDS_DEPOSIT",
        +            "VOUCHER_IDEMPOTENT_RETRY",
        +            "VOUCHER_INDETERMINATE",
        +            "VOUCHER_VALID"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "channelDeposit",
        +        "channelId",
        +        "channelSettled",
        +        "cumulativeAmount",
        +        "deltaAmount",
        +        "digest",
        +        "expectedSigner",
        +        "onChainSettleNote",
        +        "protocolVersion",
        +        "reasons",
        +        "recoveredSigner",
        +        "verdict"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "challenge",
        +    "memo",
        +    "reasons",
        +    "receipt",
        +    "scope_note",
        +    "voucher"
        +  ],
        +  "type": "object"
        +}
  11. 1 tool update
    • Changedcompute_verify_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "errors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
  12. 6 tool updates
    • Addedcompute_consultation_response_tracker
    • Addedcompute_control_attestation_campaign_roll_up
    • Addedcompute_fx_funding_sequencer
    • Addedcompute_lending_recall_prioritizer
    • Addedcompute_short_sale_locate_ssr_checker
    • Addedcompute_whistleblowing_channel_clock
  13. 4 tool updates
    • Addedcompute_eba_im_model_validation_tracker
    • Addedcompute_orsa_readiness_pack
    • Addedcompute_proxy_voting_record
    • Addedcompute_recordkeeping_completeness_mapper
  14. 1 tool update
    • Addedcompute_algo_execution_schedule_simulator
  15. 495 tool updates
    • Changedadjudicate_emir_reconciliation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "break_count": {
        +      "type": "integer"
        +    },
        +    "break_set": {
        +      "type": "array"
        +    },
        +    "field_tolerance_table_version": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "tr_disputed_count": {
        +      "type": "integer"
        +    },
        +    "tr_matched_count": {
        +      "type": "integer"
        +    },
        +    "trade_count": {
        +      "type": "integer"
        +    },
        +    "trades": {
        +      "items": {
        +        "properties": {
        +          "computed_verdict": {
        +            "type": "string"
        +          },
        +          "field_results": {
        +            "items": {
        +              "properties": {
        +                "delta": {
        +                  "type": "integer"
        +                },
        +                "field_name": {
        +                  "type": "string"
        +                },
        +                "firm_value": {
        +                  "type": "integer"
        +                },
        +                "status": {
        +                  "type": "string"
        +                },
        +                "tr_value": {
        +                  "type": "integer"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "lifecycle_event": {
        +            "type": "string"
        +          },
        +          "tr_match_status": {
        +            "type": "string"
        +          },
        +          "uti": {
        +            "type": "string"
        +          },
        +          "verdict_disagrees_with_tr": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "verdict_disagrees_with_tr_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedage_emir_reconciliation_breaks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "breaks": {
        +      "items": {
        +        "properties": {
        +          "age_days": {
        +            "type": "integer"
        +          },
        +          "ageing_bucket": {
        +            "type": "string"
        +          },
        +          "break_key": {
        +            "type": "string"
        +          },
        +          "escalation_clock": {
        +            "properties": {
        +              "deadline_iso": {
        +                "type": "string"
        +              },
        +              "escalation_status": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "field_name": {
        +            "type": "string"
        +          },
        +          "first_seen_at": {
        +            "type": "string"
        +          },
        +          "recurrence_count": {
        +            "type": "integer"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "uti": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "escalation_breached_count": {
        +      "type": "integer"
        +    },
        +    "evaluated_at": {
        +      "type": "string"
        +    },
        +    "newly_closed": {
        +      "items": {
        +        "properties": {
        +          "break_key": {
        +            "type": "string"
        +          },
        +          "field_name": {
        +            "type": "string"
        +          },
        +          "first_seen_at": {
        +            "type": "string"
        +          },
        +          "uti": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "newly_closed_count": {
        +      "type": "integer"
        +    },
        +    "newly_opened_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "persisting_count": {
        +      "type": "integer"
        +    },
        +    "total_current": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedaggregate_cbam_precursor_emissions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cumulative_see_tco2e": {
        +      "type": "integer"
        +    },
        +    "data_quality_grade": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "precursor_breakdown": {
        +      "type": "array"
        +    },
        +    "quantity_tonnes": {
        +      "type": "integer"
        +    },
        +    "scrap_adjustment": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedaggregate_execution_receipts1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregator_chain_depth": {
        +      "type": "integer"
        +    },
        +    "all_proofs_verified": {
        +      "type": "boolean"
        +    },
        +    "max_chain_depth": {
        +      "type": "integer"
        +    },
        +    "merkle_root": {
        +      "type": "string"
        +    },
        +    "n_receipts": {
        +      "type": "integer"
        +    },
        +    "receipts": {
        +      "type": "array"
        +    },
        +    "session_receipt_root": {
        +      "type": "string"
        +    },
        +    "tree_depth": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedaggregate_ownership_50pct1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "blocked_count": {
        +      "type": "integer"
        +    },
        +    "entity_verdicts": {
        +      "type": "array"
        +    },
        +    "listed_entity_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "summary": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedaggregate_reputation_score1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "attestation_count": {
        +      "type": "integer"
        +    },
        +    "composite": {
        +      "type": "number"
        +    },
        +    "decay_half_life_days": {
        +      "type": "integer"
        +    },
        +    "dims": {
        +      "properties": {
        +        "competence": {
        +          "type": "number"
        +        },
        +        "cooperation": {
        +          "type": "number"
        +        },
        +        "integrity": {
        +          "type": "number"
        +        },
        +        "timeliness": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "excluded_self_issued": {
        +      "type": "integer"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "subject_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedaggregate_solvency2_scr_modules1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "adjustment_exceeds_bscr_plus_op": {
        +      "type": "boolean"
        +    },
        +    "bscr": {
        +      "type": "number"
        +    },
        +    "default_scr": {
        +      "type": "integer"
        +    },
        +    "health_scr": {
        +      "type": "integer"
        +    },
        +    "life_scr": {
        +      "type": "integer"
        +    },
        +    "loss_absorbing_adjustment": {
        +      "type": "integer"
        +    },
        +    "market_scr": {
        +      "type": "integer"
        +    },
        +    "nonlife_scr": {
        +      "type": "integer"
        +    },
        +    "scr_operational": {
        +      "type": "integer"
        +    },
        +    "scr_total": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedaggregate_taxonomy_kpi_gar1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "activity_count": {
        +      "type": "integer"
        +    },
        +    "aligned_count": {
        +      "type": "integer"
        +    },
        +    "capex_aligned_pct": {
        +      "type": "integer"
        +    },
        +    "entity_type": {
        +      "type": "string"
        +    },
        +    "gar_detail": {
        +      "type": "string"
        +    },
        +    "green_asset_ratio": {
        +      "type": "string"
        +    },
        +    "kpi_breakdown": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "opex_aligned_pct": {
        +      "type": "integer"
        +    },
        +    "reference": {
        +      "properties": {
        +        "financial": {
        +          "type": "string"
        +        },
        +        "non_financial": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "revenue_aligned_pct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedallocate_ihb_interest1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "allocations": {
        +      "items": {
        +        "properties": {
        +          "allocation_basis": {
        +            "type": "string"
        +          },
        +          "balance": {
        +            "type": "integer"
        +          },
        +          "entity_id": {
        +            "type": "string"
        +          },
        +          "gross_interest": {
        +            "type": "integer"
        +          },
        +          "net_interest": {
        +            "type": "integer"
        +          },
        +          "withholding_amount": {
        +            "type": "integer"
        +          },
        +          "withholding_rate": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "arm_length_rate": {
        +      "type": "number"
        +    },
        +    "base_currency": {
        +      "type": "string"
        +    },
        +    "day_count_convention": {
        +      "type": "string"
        +    },
        +    "day_count_fraction": {
        +      "type": "number"
        +    },
        +    "days": {
        +      "type": "integer"
        +    },
        +    "entity_count": {
        +      "type": "integer"
        +    },
        +    "net_interest_payable": {
        +      "type": "integer"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "oecd_tp_compliant": {
        +      "type": "boolean"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "pool_net_balance": {
        +      "type": "integer"
        +    },
        +    "pool_type": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_interest_allocated": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedamortize_asc606_commissions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "amortization_period_months": {
        +      "type": "integer"
        +    },
        +    "annual_amortization": {
        +      "type": "integer"
        +    },
        +    "apply_expedient": {
        +      "type": "boolean"
        +    },
        +    "asc340_40_compliant": {
        +      "type": "boolean"
        +    },
        +    "carrying_amount": {
        +      "type": "integer"
        +    },
        +    "impairment_flag": {
        +      "type": "boolean"
        +    },
        +    "incremental_cost_test_passed": {
        +      "type": "boolean"
        +    },
        +    "monthly_amortization": {
        +      "type": "integer"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "renewal_treatment": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_amortization_periods": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedanalyze_dc_vs_lc_cost_benefit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "breakEvenProbabilityPct": {
        +      "type": "integer"
        +    },
        +    "dcRiskAdjCostUSD": {
        +      "type": "integer"
        +    },
        +    "dcRiskExposureUSD": {
        +      "type": "integer"
        +    },
        +    "dcTotalFeesUSD": {
        +      "type": "integer"
        +    },
        +    "heuristic_note": {
        +      "type": "string"
        +    },
        +    "lcProtectionScore": {
        +      "type": "integer"
        +    },
        +    "lcRiskAdjCostUSD": {
        +      "type": "integer"
        +    },
        +    "lcTotalFeesUSD": {
        +      "type": "integer"
        +    },
        +    "lc_protection_score_heuristic": {
        +      "type": "boolean"
        +    },
        +    "recommendation": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedanchor_document_integrity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "anchored": {
        +      "type": "boolean"
        +    },
        +    "document_hash": {
        +      "type": "string"
        +    },
        +    "document_type": {
        +      "type": "string"
        +    },
        +    "timestamp_claim": {
        +      "properties": {
        +        "algorithm": {
        +          "type": "string"
        +        },
        +        "standard": {
        +          "type": "string"
        +        },
        +        "timestamp": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedapply_climate_scenario1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "baseline_metric": {
        +      "type": "integer"
        +    },
        +    "carbon_price_assumption": {
        +      "type": "integer"
        +    },
        +    "delta": {
        +      "type": "integer"
        +    },
        +    "delta_by_sector": {
        +      "type": "array"
        +    },
        +    "delta_pct": {
        +      "type": "integer"
        +    },
        +    "gdp_delta_at_horizon": {
        +      "type": "number"
        +    },
        +    "horizon": {
        +      "type": "integer"
        +    },
        +    "metric": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "reference": {
        +      "properties": {
        +        "ecb_guidance": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "reference_version": {
        +          "type": "string"
        +        },
        +        "scenarios": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "scenario_family": {
        +      "type": "string"
        +    },
        +    "scenario_label": {
        +      "type": "string"
        +    },
        +    "stressed_metric": {
        +      "type": "integer"
        +    },
        +    "transition_intensity": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassemble_ai_addendum1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "assembled_markdown": {
        +      "type": "string"
        +    },
        +    "attribution": {
        +      "type": "string"
        +    },
        +    "body_sha256": {
        +      "type": "string"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "contract_api": {
        +      "properties": {
        +        "attribution": {
        +          "type": "string"
        +        },
        +        "body_sha256": {
        +          "type": "string"
        +        },
        +        "selected_clause_ids": {
        +          "type": "array"
        +        },
        +        "template_id": {
        +          "type": "string"
        +        },
        +        "variable_map": {
        +          "properties": {
        +            "effective_date": {
        +              "type": "string"
        +            },
        +            "improvement_restrictions": {
        +              "type": "string"
        +            },
        +            "model_improvement": {
        +              "type": "string"
        +            },
        +            "output_ownership": {
        +              "type": "string"
        +            },
        +            "retention_window": {
        +              "type": "string"
        +            },
        +            "subprocessor_ai": {
        +              "type": "string"
        +            },
        +            "train_on_customer_data": {
        +              "type": "string"
        +            },
        +            "training_data": {
        +              "type": "string"
        +            },
        +            "training_purposes": {
        +              "type": "string"
        +            },
        +            "training_restrictions": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "cover_page_markdown": {
        +      "type": "string"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "license": {
        +      "type": "string"
        +    },
        +    "source_url": {
        +      "type": "string"
        +    },
        +    "template_id": {
        +      "type": "string"
        +    },
        +    "zero_pii_notice": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassemble_aiuc1_evidence_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aiuc1_version": {
        +      "type": "string"
        +    },
        +    "anchor": {
        +      "type": "string"
        +    },
        +    "cadence_attestation": {
        +      "properties": {
        +        "all_within_cadence": {
        +          "type": "boolean"
        +        },
        +        "period_days": {
        +          "type": "integer"
        +        },
        +        "rows": {
        +          "items": {
        +            "properties": {
        +              "control_id": {
        +                "type": "string"
        +              },
        +              "max_gap_days": {
        +                "type": "integer"
        +              },
        +              "within_cadence": {
        +                "type": "boolean"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "controls": {
        +      "items": {
        +        "properties": {
        +          "artifact_digests": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "claim_strength": {
        +            "type": "string"
        +          },
        +          "control_id": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "oscal_assessment_results": {
        +      "properties": {
        +        "_source_citation": {
        +          "type": "string"
        +        },
        +        "aiuc1_version": {
        +          "type": "string"
        +        },
        +        "results": {
        +          "items": {
        +            "properties": {
        +              "control_id": {
        +                "type": "string"
        +              },
        +              "state": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "type": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "pack_claim_strength": {
        +      "type": "string"
        +    },
        +    "version_mismatch": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassemble_license_terms1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "available_templates": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "fields_missing": {
        +      "type": "array"
        +    },
        +    "fields_used": {
        +      "properties": {},
        +      "type": "object"
        +    },
        +    "rendered_html": {
        +      "type": "string"
        +    },
        +    "rendered_text": {
        +      "type": "string"
        +    },
        +    "template_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassemble_mutual_nda1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "assembled_markdown": {
        +      "type": "string"
        +    },
        +    "attribution": {
        +      "type": "string"
        +    },
        +    "body_sha256": {
        +      "type": "string"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "contract_api": {
        +      "properties": {
        +        "attribution": {
        +          "type": "string"
        +        },
        +        "body_sha256": {
        +          "type": "string"
        +        },
        +        "selected_clause_ids": {
        +          "type": "array"
        +        },
        +        "template_id": {
        +          "type": "string"
        +        },
        +        "variable_map": {
        +          "properties": {
        +            "confidentiality_term_mode": {
        +              "type": "string"
        +            },
        +            "confidentiality_term_years": {
        +              "type": "string"
        +            },
        +            "effective_date": {
        +              "type": "string"
        +            },
        +            "governing_law": {
        +              "type": "string"
        +            },
        +            "jurisdiction": {
        +              "type": "string"
        +            },
        +            "mnda_term_mode": {
        +              "type": "string"
        +            },
        +            "mnda_term_years": {
        +              "type": "string"
        +            },
        +            "modifications": {
        +              "type": "string"
        +            },
        +            "purpose": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "cover_page_markdown": {
        +      "type": "string"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "license": {
        +      "type": "string"
        +    },
        +    "source_url": {
        +      "type": "string"
        +    },
        +    "template_id": {
        +      "type": "string"
        +    },
        +    "zero_pii_notice": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassemble_ocg_evidence_bundle1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "artifact_execution_hash": {
        +      "type": "string"
        +    },
        +    "artifact_tool_id": {
        +      "type": "string"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "eligible_tiers": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "gate_provenance": {
        +      "properties": {
        +        "chain_execution_valid": {
        +          "type": "boolean"
        +        },
        +        "compute_integrity_proof_valid": {
        +          "type": "boolean"
        +        },
        +        "envelope_well_formed": {
        +          "type": "boolean"
        +        },
        +        "execution_hash_recomputes": {
        +          "type": "boolean"
        +        },
        +        "mandate_gates_valid": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "proof_ref_count": {
        +      "type": "integer"
        +    },
        +    "proof_refs": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "tier_label": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_circumvention_diligence1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "controlled_goods_flag": {
        +      "type": "boolean"
        +    },
        +    "dd_gaps": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "dd_score_pct": {
        +      "type": "integer"
        +    },
        +    "diligence_grade": {
        +      "type": "string"
        +    },
        +    "diversion_risk_flag": {
        +      "type": "boolean"
        +    },
        +    "eu_20th_package_note": {
        +      "type": "string"
        +    },
        +    "key_dates": {
        +      "properties": {
        +        "eu_20th_package": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "liability_allocation": {
        +      "type": "string"
        +    },
        +    "no_russia_clause_status": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_cra_vuln_reporting_readiness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "vuln_reporting_ready": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_defi_lending1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "borrow_capacity_usd": {
        +      "type": "integer"
        +    },
        +    "buffer_to_liquidation_pct": {
        +      "type": "number"
        +    },
        +    "collateral_value_usd": {
        +      "type": "integer"
        +    },
        +    "current_ltv_pct": {
        +      "type": "integer"
        +    },
        +    "debt_value_usd": {
        +      "type": "integer"
        +    },
        +    "distance_to_liquidation_pct": {
        +      "type": "number"
        +    },
        +    "health_factor": {
        +      "type": "number"
        +    },
        +    "health_status": {
        +      "type": "string"
        +    },
        +    "liquidation_bonus_pct": {
        +      "type": "integer"
        +    },
        +    "liquidation_mechanism": {
        +      "type": "string"
        +    },
        +    "liquidation_mechanism_note": {
        +      "type": "string"
        +    },
        +    "liquidation_penalty_usd": {
        +      "type": "integer"
        +    },
        +    "liquidation_price_usd": {
        +      "type": "number"
        +    },
        +    "liquidation_threshold_pct": {
        +      "type": "integer"
        +    },
        +    "not_financial_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "protocol": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_iso42001_aims_conformance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "clause_score": {
        +      "type": "integer"
        +    },
        +    "clauses_fully_present": {
        +      "type": "integer"
        +    },
        +    "control_score": {
        +      "type": "integer"
        +    },
        +    "controls_fully_present": {
        +      "type": "integer"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "maturity_band": {
        +      "type": "string"
        +    },
        +    "overall_maturity": {
        +      "type": "integer"
        +    },
        +    "total_clauses": {
        +      "type": "integer"
        +    },
        +    "total_controls": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_mar_crypto_surveillance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "arrangement_scores": {
        +      "properties": {
        +        "insider_list": {
        +          "type": "integer"
        +        },
        +        "manipulation": {
        +          "type": "integer"
        +        },
        +        "ppaet": {
        +          "type": "integer"
        +        },
        +        "stor": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "assets_in_scope": {
        +      "type": "integer"
        +    },
        +    "composite_pct": {
        +      "type": "integer"
        +    },
        +    "gaps": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "mar_rts_note": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "ppaet_status": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "stor_ready": {
        +      "type": "boolean"
        +    },
        +    "surveillance_grade": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_mica_casp_readiness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "application_pack_checklist": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "authorization_grade": {
        +      "type": "string"
        +    },
        +    "composite_pct": {
        +      "type": "integer"
        +    },
        +    "dimension_scores": {
        +      "properties": {
        +        "complaints_handling": {
        +          "type": "integer"
        +        },
        +        "conflicts_policy": {
        +          "type": "integer"
        +        },
        +        "custody_segregation": {
        +          "type": "integer"
        +        },
        +        "fit_and_proper": {
        +          "type": "integer"
        +        },
        +        "governance_board": {
        +          "type": "integer"
        +        },
        +        "ict_resilience": {
        +          "type": "integer"
        +        },
        +        "internal_controls": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "gaps": {
        +      "items": {
        +        "properties": {
        +          "area": {
        +            "type": "string"
        +          },
        +          "article": {
        +            "type": "string"
        +          },
        +          "remediation": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "notified_body": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_model_validation_status1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "cadence_days": {
        +      "type": "integer"
        +    },
        +    "days_since_validation": {
        +      "type": "integer"
        +    },
        +    "last_validation_date": {
        +      "type": "string"
        +    },
        +    "never_validated": {
        +      "type": "boolean"
        +    },
        +    "next_validation_due_days": {
        +      "type": "integer"
        +    },
        +    "outcome_status": {
        +      "type": "string"
        +    },
        +    "overdue": {
        +      "type": "boolean"
        +    },
        +    "tier": {
        +      "type": "string"
        +    },
        +    "validation_status": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_psd3_readiness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "band": {
        +      "type": "string"
        +    },
        +    "critical_gaps": {
        +      "type": "integer"
        +    },
        +    "domain_scores": {
        +      "properties": {
        +        "d1": {
        +          "type": "integer"
        +        },
        +        "d2": {
        +          "type": "integer"
        +        },
        +        "d3": {
        +          "type": "integer"
        +        },
        +        "d4": {
        +          "type": "integer"
        +        },
        +        "d5": {
        +          "type": "integer"
        +        },
        +        "d6": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "overall_readiness_score": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_restaking_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "buffer_absorbs_usd": {
        +      "type": "integer"
        +    },
        +    "delegator_net_slash_eth": {
        +      "type": "number"
        +    },
        +    "delegator_net_slash_usd": {
        +      "type": "integer"
        +    },
        +    "eth_price_usd": {
        +      "type": "integer"
        +    },
        +    "expected_annual_slash_usd": {
        +      "type": "number"
        +    },
        +    "first_loss_tranche_pct": {
        +      "type": "integer"
        +    },
        +    "gross_apy_pct": {
        +      "type": "integer"
        +    },
        +    "gross_usd_per_year": {
        +      "type": "integer"
        +    },
        +    "insurance_enabled": {
        +      "type": "boolean"
        +    },
        +    "insurance_makes_sense": {
        +      "type": "boolean"
        +    },
        +    "insurance_premium_pct_of_rewards": {
        +      "type": "number"
        +    },
        +    "insurance_premium_usd_per_year": {
        +      "type": "number"
        +    },
        +    "max_slash_usd": {
        +      "type": "integer"
        +    },
        +    "net_apy_pct": {
        +      "type": "number"
        +    },
        +    "net_apy_risk_adjusted_pct": {
        +      "type": "number"
        +    },
        +    "net_usd_per_year": {
        +      "type": "integer"
        +    },
        +    "net_usd_per_year_risk_adjusted": {
        +      "type": "number"
        +    },
        +    "net_with_insurance_apy_pct": {
        +      "type": "number"
        +    },
        +    "net_with_insurance_usd_per_year": {
        +      "type": "number"
        +    },
        +    "not_financial_advice": {
        +      "type": "string"
        +    },
        +    "operator_cut_pct": {
        +      "type": "number"
        +    },
        +    "operator_fee_usd_per_year": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "protocol": {
        +      "type": "string"
        +    },
        +    "protocol_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "risk_reward_ratio": {
        +      "type": "number"
        +    },
        +    "slash_magnitude_pct": {
        +      "type": "integer"
        +    },
        +    "slashing_risk_pct": {
        +      "type": "number"
        +    },
        +    "staked_eth": {
        +      "type": "integer"
        +    },
        +    "staked_usd": {
        +      "type": "integer"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_suspect_product_status1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "required_actions": {
        +      "type": "array"
        +    },
        +    "status": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedassess_traiga_exposure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cure_window_days": {
        +      "type": "integer"
        +    },
        +    "matched_prohibited_uses": {
        +      "type": "array"
        +    },
        +    "penalty_per_violation_usd": {
        +      "type": "integer"
        +    },
        +    "prohibited_use_detected": {
        +      "type": "boolean"
        +    },
        +    "statute_citation": {
        +      "type": "string"
        +    },
        +    "traiga_applicable": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedattest_bulk_disbursement_integrity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "absent_this_run": {
        +      "type": "array"
        +    },
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "authorized_payee_count": {
        +      "type": "integer"
        +    },
        +    "authorized_total_display": {
        +      "type": "string"
        +    },
        +    "authorized_total_minor_units": {
        +      "type": "integer"
        +    },
        +    "control_total_reconciled": {
        +      "type": "boolean"
        +    },
        +    "count_break": {
        +      "type": "integer"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "declared_exclusions": {
        +      "type": "array"
        +    },
        +    "destination_cap_breaches": {
        +      "type": "array"
        +    },
        +    "duplicate_candidate_cluster_count": {
        +      "type": "integer"
        +    },
        +    "duplicate_candidate_clusters": {
        +      "type": "array"
        +    },
        +    "has_destination_cap_breach": {
        +      "type": "boolean"
        +    },
        +    "has_limit_breach": {
        +      "type": "boolean"
        +    },
        +    "has_roster_movement": {
        +      "type": "boolean"
        +    },
        +    "limit_breaches": {
        +      "type": "array"
        +    },
        +    "new_this_run": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "per_payee_limit_minor_units": {
        +      "type": "integer"
        +    },
        +    "per_run_limit_breach": {
        +      "type": "string"
        +    },
        +    "per_run_limit_minor_units": {
        +      "type": "integer"
        +    },
        +    "prior_run_payee_count": {
        +      "type": "integer"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reconciled_record_count": {
        +      "type": "integer"
        +    },
        +    "reconciled_total_display": {
        +      "type": "string"
        +    },
        +    "reconciled_total_minor_units": {
        +      "type": "integer"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "roster_movement_verifiable": {
        +      "type": "boolean"
        +    },
        +    "run_reference": {
        +      "type": "string"
        +    },
        +    "split_payment_candidates": {
        +      "type": "array"
        +    },
        +    "value_break_display": {
        +      "type": "string"
        +    },
        +    "value_break_minor_units": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedaudit_acp_ucp_product_feed1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "acp_missing_required": {
        +      "type": "array"
        +    },
        +    "audit_target": {
        +      "type": "string"
        +    },
        +    "conformance_scores": {
        +      "properties": {
        +        "acp": {
        +          "type": "integer"
        +        },
        +        "ucp": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "critical_gaps": {
        +      "type": "integer"
        +    },
        +    "payload_type": {
        +      "type": "string"
        +    },
        +    "ucp_missing_required": {
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedaudit_mcp_tool_scope_revocation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "audit_pass": {
        +      "type": "boolean"
        +    },
        +    "revocable": {
        +      "type": "boolean"
        +    },
        +    "rotation_ok": {
        +      "type": "boolean"
        +    },
        +    "scopes_ok": {
        +      "type": "boolean"
        +    },
        +    "token_age_s": {
        +      "type": "integer"
        +    },
        +    "ungated_tools": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbenchmark_tp_interquartile_range1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "comparable_count": {
        +      "type": "integer"
        +    },
        +    "iqr": {
        +      "type": "number"
        +    },
        +    "median": {
        +      "type": "number"
        +    },
        +    "missing_inputs": {
        +      "type": "array"
        +    },
        +    "not_a_comparable_selector": {
        +      "type": "string"
        +    },
        +    "q1": {
        +      "type": "number"
        +    },
        +    "q3": {
        +      "type": "number"
        +    },
        +    "range_verdict": {
        +      "type": "string"
        +    },
        +    "ratio_suite": {
        +      "properties": {
        +        "berry_ratio": {
        +          "type": "number"
        +        },
        +        "tnmm_net_cost_plus_margin": {
        +          "type": "number"
        +        },
        +        "tnmm_operating_margin": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "sorted_comparable_ratios": {
        +      "items": {
        +        "type": "number"
        +      },
        +      "type": "array"
        +    },
        +    "tested_party_ratio": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbind_agreement_acceptance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "acceptance_statement": {
        +      "type": "string"
        +    },
        +    "accepted_body_sha256": {
        +      "type": "string"
        +    },
        +    "accepted_template_id": {
        +      "type": "string"
        +    },
        +    "accepting_party_role": {
        +      "type": "string"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "previous_proof_hash": {
        +      "type": "string"
        +    },
        +    "referenced_execution_hash": {
        +      "type": "string"
        +    },
        +    "zero_pii_notice": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbind_attested_subject1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "binding_complete": {
        +      "type": "boolean"
        +    },
        +    "findings": {
        +      "type": "array"
        +    },
        +    "inputs_digest_source": {
        +      "type": "string"
        +    },
        +    "no_arithmetic_claim": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "preimage_member_count": {
        +      "type": "integer"
        +    },
        +    "producer_pinned": {
        +      "type": "boolean"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "subject_hash": {
        +      "type": "string"
        +    },
        +    "subject_preimage": {
        +      "properties": {
        +        "artifact": {
        +          "properties": {
        +            "content_digest": {
        +              "type": "string"
        +            },
        +            "content_type": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "inputs_digest": {
        +          "type": "string"
        +        },
        +        "tool_ref": {
        +          "properties": {
        +            "entry": {
        +              "type": "string"
        +            },
        +            "manifest_digest": {
        +              "type": "string"
        +            },
        +            "tool_id": {
        +              "type": "string"
        +            },
        +            "tool_version": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_226j_response_evidence_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attestation": {
        +      "properties": {
        +        "signed_at": {
        +          "type": "string"
        +        },
        +        "signer_name": {
        +          "type": "string"
        +        },
        +        "signer_title": {
        +          "type": "string"
        +        },
        +        "status": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "disputed_employee_count": {
        +      "type": "integer"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "exposure_delta": {
        +      "type": "integer"
        +    },
        +    "irs_asserted_esrp_annual": {
        +      "type": "integer"
        +    },
        +    "letter_date": {
        +      "type": "string"
        +    },
        +    "recomputed_exposure_annual": {
        +      "type": "integer"
        +    },
        +    "response_deadline": {
        +      "type": "string"
        +    },
        +    "response_window_days": {
        +      "type": "integer"
        +    },
        +    "response_window_source": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_adverse_action_notice1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags_raised": {
        +      "type": "integer"
        +    },
        +    "notice_sections": {
        +      "properties": {
        +        "action_statement": {
        +          "type": "string"
        +        },
        +        "applicant": {
        +          "type": "string"
        +        },
        +        "credit_score_disclosure": {
        +          "properties": {
        +            "key_factors": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "score": {
        +              "type": "integer"
        +            },
        +            "score_date": {
        +              "type": "string"
        +            },
        +            "score_range": {
        +              "type": "string"
        +            },
        +            "score_source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "date": {
        +          "type": "string"
        +        },
        +        "ecoa_statement": {
        +          "type": "string"
        +        },
        +        "fcra_rights": {
        +          "properties": {
        +            "cra_address": {
        +              "type": "string"
        +            },
        +            "cra_name": {
        +              "type": "string"
        +            },
        +            "cra_phone": {
        +              "type": "string"
        +            },
        +            "dispute_statement": {
        +              "type": "string"
        +            },
        +            "free_copy_statement": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "header": {
        +          "type": "string"
        +        },
        +        "reasons": {
        +          "items": {
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "description": {
        +                "type": "string"
        +              },
        +              "position": {
        +                "type": "integer"
        +              },
        +              "source": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "receipt_metadata": {
        +      "properties": {
        +        "action_taken": {
        +          "type": "string"
        +        },
        +        "anchor_recommendation": {
        +          "type": "string"
        +        },
        +        "credit_score_disclosed": {
        +          "type": "boolean"
        +        },
        +        "ecoa_rights_included": {
        +          "type": "boolean"
        +        },
        +        "fcra_rights_included": {
        +          "type": "boolean"
        +        },
        +        "notice_type": {
        +          "type": "string"
        +        },
        +        "reason_codes": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "reason_count": {
        +          "type": "integer"
        +        },
        +        "regulation": {
        +          "type": "string"
        +        },
        +        "retention_requirement": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "resolved_reasons": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "description": {
        +            "type": "string"
        +          },
        +          "rank": {
        +            "type": "integer"
        +          },
        +          "shap_value": {
        +            "type": "number"
        +          },
        +          "source": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_agent_incident_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "agent_identity": {
        +      "properties": {
        +        "agent_id": {
        +          "type": "string"
        +        },
        +        "agent_version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "cross_linked": {
        +      "type": "boolean"
        +    },
        +    "escalation_cross_link": {
        +      "properties": {
        +        "escalation_record_hash": {
        +          "type": "string"
        +        },
        +        "escalation_record_hash_well_formed": {
        +          "type": "boolean"
        +        },
        +        "failure_receipt_hash": {
        +          "type": "string"
        +        },
        +        "failure_receipt_hash_well_formed": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "evidence_count": {
        +      "type": "integer"
        +    },
        +    "incident": {
        +      "properties": {
        +        "description": {
        +          "type": "string"
        +        },
        +        "detected_at": {
        +          "type": "string"
        +        },
        +        "incident_id": {
        +          "type": "string"
        +        },
        +        "severity_class": {
        +          "type": "string"
        +        },
        +        "severity_coerced_from_forbidden_class": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "invalid_evidence_count": {
        +      "type": "integer"
        +    },
        +    "mandate_hash": {
        +      "type": "string"
        +    },
        +    "record_claim_strength": {
        +      "type": "string"
        +    },
        +    "record_note": {
        +      "type": "string"
        +    },
        +    "remediation": {
        +      "properties": {
        +        "notes": {
        +          "type": "string"
        +        },
        +        "status": {
        +          "type": "string"
        +        },
        +        "status_coerced_from_forbidden_class": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "session_evidence": {
        +      "items": {
        +        "properties": {
        +          "digest": {
        +            "type": "string"
        +          },
        +          "evidence_type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_agent_test_evidence1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aiuc_version": {
        +      "type": "string"
        +    },
        +    "certification_note": {
        +      "type": "string"
        +    },
        +    "chain_intact": {
        +      "type": "boolean"
        +    },
        +    "declared_prior_pack_digest": {
        +      "type": "string"
        +    },
        +    "pack_claim_strength": {
        +      "type": "string"
        +    },
        +    "pass_rate": {
        +      "type": "integer"
        +    },
        +    "passed": {
        +      "type": "integer"
        +    },
        +    "per_test": {
        +      "items": {
        +        "properties": {
        +          "coerced_from_forbidden_class": {
        +            "type": "boolean"
        +          },
        +          "determinism_class": {
        +            "type": "string"
        +          },
        +          "prng": {
        +            "type": "string"
        +          },
        +          "receipt_digest": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "test_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "prior_quarter": {
        +      "type": "string"
        +    },
        +    "quarter": {
        +      "type": "string"
        +    },
        +    "regression": {
        +      "properties": {
        +        "delta": {
        +          "type": "string"
        +        },
        +        "regressed": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "suite": {
        +      "properties": {
        +        "suite_digest": {
        +          "type": "string"
        +        },
        +        "suite_id": {
        +          "type": "string"
        +        },
        +        "suite_version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "tamper_detected": {
        +      "type": "boolean"
        +    },
        +    "total": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_agent_traffic_policy1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "accepted_agent_types": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "accepted_payment_rails": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "block_rules": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "guardrail_findings": {
        +      "items": {
        +        "properties": {
        +          "message": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "guardrail_passes": {
        +      "type": "integer"
        +    },
        +    "guardrail_warnings": {
        +      "type": "integer"
        +    },
        +    "max_daily_spend_usd": {
        +      "type": "integer"
        +    },
        +    "max_single_transaction_usd": {
        +      "type": "integer"
        +    },
        +    "max_tx_per_day": {
        +      "type": "integer"
        +    },
        +    "max_tx_per_min": {
        +      "type": "integer"
        +    },
        +    "overall_risk": {
        +      "type": "string"
        +    },
        +    "refund_posture": {
        +      "type": "string"
        +    },
        +    "retry_policy": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "verification_level": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_ai_conformity_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annex_iv_gaps": {
        +      "items": {
        +        "properties": {
        +          "evidence_ref": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "remediation": {
        +            "type": "string"
        +          },
        +          "section": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "annex_iv_grade": {
        +      "type": "string"
        +    },
        +    "annex_iv_score": {
        +      "type": "integer"
        +    },
        +    "applicable_date_note": {
        +      "type": "string"
        +    },
        +    "articles_status": {
        +      "properties": {
        +        "art10": {
        +          "properties": {
        +            "label": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art15": {
        +          "properties": {
        +            "label": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art17": {
        +          "properties": {
        +            "label": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art9": {
        +          "properties": {
        +            "label": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ce_readiness_note": {
        +      "type": "string"
        +    },
        +    "ce_ready": {
        +      "type": "boolean"
        +    },
        +    "conformity_grade": {
        +      "type": "string"
        +    },
        +    "conformity_route": {
        +      "type": "string"
        +    },
        +    "conformity_route_note": {
        +      "type": "string"
        +    },
        +    "declaration_of_conformity_skeleton": {
        +      "properties": {
        +        "note": {
        +          "type": "string"
        +        },
        +        "template": {
        +          "properties": {
        +            "annex_iii_use_case": {
        +              "type": "string"
        +            },
        +            "applicable_regulation": {
        +              "type": "string"
        +            },
        +            "conformity_route": {
        +              "type": "string"
        +            },
        +            "declaration_date": {
        +              "type": "string"
        +            },
        +            "declaration_number": {
        +              "type": "string"
        +            },
        +            "harmonised_standards": {
        +              "type": "string"
        +            },
        +            "notified_body": {
        +              "type": "string"
        +            },
        +            "provider_address": {
        +              "type": "string"
        +            },
        +            "provider_name": {
        +              "type": "string"
        +            },
        +            "signatory": {
        +              "type": "string"
        +            },
        +            "statement": {
        +              "type": "string"
        +            },
        +            "system_name": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "system": {
        +      "properties": {
        +        "annex_iii_use_case": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "role": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_ai_decision_log_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "anchor_surface": {
        +      "type": "string"
        +    },
        +    "anchor_tools": {
        +      "properties": {
        +        "batch": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "single": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "art12_completeness_score": {
        +      "type": "integer"
        +    },
        +    "art12_fields_present": {
        +      "type": "boolean"
        +    },
        +    "chain_position": {
        +      "type": "string"
        +    },
        +    "confidence": {
        +      "type": "number"
        +    },
        +    "decision_label": {
        +      "type": "string"
        +    },
        +    "enforcement_dates": {
        +      "properties": {
        +        "digital_omnibus_proposed": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "original": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "input_digest": {
        +      "type": "string"
        +    },
        +    "missing_art12_fields": {
        +      "type": "array"
        +    },
        +    "model_id": {
        +      "type": "string"
        +    },
        +    "model_version": {
        +      "type": "string"
        +    },
        +    "operator_id": {
        +      "type": "string"
        +    },
        +    "output_digest": {
        +      "type": "string"
        +    },
        +    "override_by": {
        +      "type": "string"
        +    },
        +    "override_flag": {
        +      "type": "boolean"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "record_status": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "retention_months": {
        +      "type": "integer"
        +    },
        +    "sha256_prev_record": {
        +      "type": "string"
        +    },
        +    "subject_ref": {
        +      "type": "string"
        +    },
        +    "system_context": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_ai_training_data_lineage_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "chain_position": {
        +      "type": "string"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "collection_method": {
        +      "type": "string"
        +    },
        +    "dataset_id": {
        +      "type": "string"
        +    },
        +    "dataset_version": {
        +      "type": "string"
        +    },
        +    "governance_notes": {
        +      "type": "string"
        +    },
        +    "operator_id": {
        +      "type": "string"
        +    },
        +    "record_status": {
        +      "type": "string"
        +    },
        +    "referenced_receipt": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "retention_months": {
        +      "type": "integer"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "sha256_prev_lineage_hash": {
        +      "type": "string"
        +    },
        +    "source_dataset_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "zero_pii_notice": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_ai_workpaper_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "documentation_standard_ref": {
        +      "type": "string"
        +    },
        +    "engagement": {
        +      "properties": {
        +        "engagement_id": {
        +          "type": "string"
        +        },
        +        "reporting_period": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "evidence_binding": {
        +      "properties": {
        +        "execution_hash": {
        +          "type": "string"
        +        },
        +        "generated_at": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "limitations": {
        +      "properties": {
        +        "declared_conventions": {
        +          "type": "string"
        +        },
        +        "determinism_class": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "previous_workpaper_hash": {
        +      "type": "string"
        +    },
        +    "sign_off": {
        +      "properties": {
        +        "reviewer_role": {
        +          "type": "string"
        +        },
        +        "reviewer_statement": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "tool_identity": {
        +      "properties": {
        +        "kernel_digest": {
        +          "type": "string"
        +        },
        +        "tool_id": {
        +          "type": "string"
        +        },
        +        "tool_version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "zero_pii_notice": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_allocation_decision_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "binding_constraints": {
        +      "type": "array"
        +    },
        +    "delta": {
        +      "properties": {
        +        "cost_chosen": {
        +          "type": "string"
        +        },
        +        "cost_delta": {
        +          "type": "string"
        +        },
        +        "cost_optimal": {
        +          "type": "string"
        +        },
        +        "eligibility": {
        +          "properties": {
        +            "ineligible_amount_total": {
        +              "type": "string"
        +            },
        +            "ineligible_assets_in_chosen": {
        +              "type": "array"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "eligibility_schedule_ref": {
        +      "type": "string"
        +    },
        +    "exceptions": {
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "haircut_table_version": {
        +      "type": "string"
        +    },
        +    "inventory_ref": {
        +      "type": "string"
        +    },
        +    "judgment_required": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "objective": {
        +      "type": "string"
        +    },
        +    "obligation": {
        +      "properties": {
        +        "amount": {
        +          "type": "string"
        +        },
        +        "positive": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "obligation_ref": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reproducibility": {
        +      "properties": {
        +        "chosen_allocation": {
        +          "items": {
        +            "properties": {
        +              "amount": {
        +                "type": "string"
        +              },
        +              "asset_id": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "obligation_covered_by_chosen": {
        +          "type": "boolean"
        +        },
        +        "obligation_covered_by_optimal": {
        +          "type": "boolean"
        +        },
        +        "optimal_allocation": {
        +          "items": {
        +            "properties": {
        +              "amount": {
        +                "type": "string"
        +              },
        +              "asset_id": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "verdict": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rounding": {
        +      "properties": {
        +        "decimal_places": {
        +          "type": "integer"
        +        },
        +        "mode": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_amortization_schedule1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "advances": {
        +      "items": {
        +        "properties": {
        +          "amount": {
        +            "type": "integer"
        +          },
        +          "periods_from_consummation": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "loan_amount": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "note_rate_pct": {
        +      "type": "integer"
        +    },
        +    "num_payments": {
        +      "type": "integer"
        +    },
        +    "odd_days": {
        +      "type": "integer"
        +    },
        +    "payment_amount": {
        +      "type": "number"
        +    },
        +    "payments": {
        +      "items": {
        +        "properties": {
        +          "amount": {
        +            "type": "number"
        +          },
        +          "periods_from_consummation": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "periods_per_year": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "schedule": {
        +      "items": {
        +        "properties": {
        +          "ending_balance": {
        +            "type": "number"
        +          },
        +          "interest": {
        +            "type": "integer"
        +          },
        +          "payment_amount": {
        +            "type": "number"
        +          },
        +          "period_index": {
        +            "type": "integer"
        +          },
        +          "periods_from_consummation": {
        +            "type": "integer"
        +          },
        +          "principal": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "schedule_type": {
        +      "type": "string"
        +    },
        +    "totals": {
        +      "properties": {
        +        "ending_balance": {
        +          "type": "integer"
        +        },
        +        "num_payments": {
        +          "type": "integer"
        +        },
        +        "total_interest": {
        +          "type": "number"
        +        },
        +        "total_principal": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "unit_period_days": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_art5_diligence_evidence1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "agent_parity_findings": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "duty_id": {
        +            "type": "string"
        +          },
        +          "identity_id": {
        +            "type": "string"
        +          },
        +          "role": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "citations": {
        +      "properties": {
        +        "art5_1_a_credit_granting": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art5_1_c_risk_retention": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art5_1_e_disclosure": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art5_3_risk_assessment": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art5_4_b_stress_testing": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art5_4_d_internal_reporting": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art5_4_ongoing_monitoring": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "art7_investor_report": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "deal_ref": {
        +      "type": "string"
        +    },
        +    "distinctness_basis": {
        +      "type": "string"
        +    },
        +    "duty_count": {
        +      "type": "integer"
        +    },
        +    "duty_results": {
        +      "items": {
        +        "properties": {
        +          "accountability_trail": {
        +            "properties": {
        +              "by_role": {
        +                "properties": {
        +                  "approver": {
        +                    "properties": {
        +                      "approval_count": {
        +                        "type": "integer"
        +                      },
        +                      "counted_identities": {
        +                        "type": "array"
        +                      },
        +                      "counted_identity_count": {
        +                        "type": "integer"
        +                      },
        +                      "reason": {
        +                        "type": "string"
        +                      },
        +                      "rejection_count": {
        +                        "type": "integer"
        +                      },
        +                      "role": {
        +                        "type": "string"
        +                      },
        +                      "status": {
        +                        "type": "string"
        +                      },
        +                      "unsigned_approval_count": {
        +                        "type": "integer"
        +                      }
        +                    },
        +                    "type": "object"
        +                  },
        +                  "performer": {
        +                    "properties": {
        +                      "approval_count": {
        +                        "type": "integer"
        +                      },
        +                      "counted_identities": {
        +                        "type": "array"
        +                      },
        +                      "counted_identity_count": {
        +                        "type": "integer"
        +                      },
        +                      "reason": {
        +                        "type": "string"
        +                      },
        +                      "rejection_count": {
        +                        "type": "integer"
        +                      },
        +                      "role": {
        +                        "type": "string"
        +                      },
        +                      "status": {
        +                        "type": "string"
        +                      },
        +                      "unsigned_approval_count": {
        +                        "type": "integer"
        +                      }
        +                    },
        +                    "type": "object"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "duty_id": {
        +                "type": "string"
        +              },
        +              "record_count": {
        +                "type": "integer"
        +              },
        +              "required_roles": {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              "roles_required_count": {
        +                "type": "integer"
        +              },
        +              "roles_satisfied_count": {
        +                "type": "integer"
        +              },
        +              "status": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "citation": {
        +            "properties": {
        +              "id": {
        +                "type": "string"
        +              },
        +              "in_force_from": {
        +                "type": "string"
        +              },
        +              "mapped_at": {
        +                "type": "string"
        +              },
        +              "mapped_by": {
        +                "type": "string"
        +              },
        +              "scheme": {
        +                "type": "string"
        +              },
        +              "uri": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "citation_source": {
        +            "type": "string"
        +          },
        +          "decided_by": {
        +            "type": "string"
        +          },
        +          "duty_class": {
        +            "type": "string"
        +          },
        +          "duty_id": {
        +            "type": "string"
        +          },
        +          "evidence": {
        +            "type": "array"
        +          },
        +          "evidence_count": {
        +            "type": "integer"
        +          },
        +          "judgment_required": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "performed_asserted": {
        +            "type": "boolean"
        +          },
        +          "performed_note": {
        +            "type": "string"
        +          },
        +          "position": {
        +            "type": "integer"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "status_basis": {
        +            "type": "string"
        +          },
        +          "typical_evidence": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "duty_set": {
        +      "properties": {
        +        "duty_set_id": {
        +          "type": "string"
        +        },
        +        "duty_set_label": {
        +          "type": "string"
        +        },
        +        "exhaustive": {
        +          "type": "boolean"
        +        },
        +        "exhaustiveness_note": {
        +          "type": "string"
        +        },
        +        "field_set_version": {
        +          "type": "string"
        +        },
        +        "shipped_duty_count": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "investor_ref": {
        +      "type": "string"
        +    },
        +    "judgment_duties": {
        +      "items": {
        +        "properties": {
        +          "citation_id": {
        +            "type": "string"
        +          },
        +          "decided_by": {
        +            "type": "string"
        +          },
        +          "duty_id": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "resolving_input": {
        +            "type": "string"
        +          },
        +          "what_is_undetermined": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "no_adequacy_claim": {
        +      "type": "string"
        +    },
        +    "no_ratio_published": {
        +      "type": "string"
        +    },
        +    "not_a_filing": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "outstanding_duties": {
        +      "items": {
        +        "properties": {
        +          "citation_id": {
        +            "type": "string"
        +          },
        +          "decided_by": {
        +            "type": "string"
        +          },
        +          "duty_id": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "what_is_missing": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "override_handling": {
        +      "type": "string"
        +    },
        +    "override_record_count": {
        +      "type": "integer"
        +    },
        +    "performed_count": {
        +      "type": "integer"
        +    },
        +    "period": {
        +      "properties": {
        +        "bounds_present": {
        +          "type": "boolean"
        +        },
        +        "end_date": {
        +          "type": "string"
        +        },
        +        "label": {
        +          "type": "string"
        +        },
        +        "order_valid": {
        +          "type": "boolean"
        +        },
        +        "start_date": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "position_ref": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_citations": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_claim_dispute_bundle1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "bundle_claim_strength": {
        +      "type": "string"
        +    },
        +    "challenge_digest": {
        +      "type": "string"
        +    },
        +    "claim_digest": {
        +      "type": "string"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "kpi_breach": {
        +      "properties": {
        +        "breached": {
        +          "type": "boolean"
        +        },
        +        "kpi": {
        +          "type": "string"
        +        },
        +        "measured": {
        +          "type": "number"
        +        },
        +        "threshold": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "receipts": {
        +      "items": {
        +        "properties": {
        +          "receipt_hash": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "replay_instructions": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_conditional_relief_collateral_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_conditions_met": {
        +      "type": "boolean"
        +    },
        +    "applicable_capital_charge": {
        +      "type": "integer"
        +    },
        +    "applicable_charge_pct": {
        +      "type": "integer"
        +    },
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "asset_class": {
        +      "type": "string"
        +    },
        +    "asset_class_valid": {
        +      "type": "boolean"
        +    },
        +    "condition_set_version": {
        +      "type": "string"
        +    },
        +    "conditions": {
        +      "items": {
        +        "properties": {
        +          "condition_id": {
        +            "type": "string"
        +          },
        +          "description": {
        +            "type": "string"
        +          },
        +          "evidence_status": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "declared_haircut_pct": {
        +      "type": "integer"
        +    },
        +    "declared_reporting_cadence": {
        +      "type": "string"
        +    },
        +    "declared_valuation": {
        +      "type": "integer"
        +    },
        +    "eligibility_lost_on_revocation": {
        +      "type": "boolean"
        +    },
        +    "exceptions": {
        +      "type": "array"
        +    },
        +    "issuer_permitted_status": {
        +      "type": "boolean"
        +    },
        +    "issuer_permitted_status_declared": {
        +      "type": "boolean"
        +    },
        +    "last_report_ref": {
        +      "type": "string"
        +    },
        +    "position_size": {
        +      "type": "integer"
        +    },
        +    "relied_on_version": {
        +      "type": "string"
        +    },
        +    "relief_regime": {
        +      "type": "string"
        +    },
        +    "revocation_capital_charge": {
        +      "type": "integer"
        +    },
        +    "revocation_capital_delta": {
        +      "type": "integer"
        +    },
        +    "revocation_charge_pct": {
        +      "type": "integer"
        +    },
        +    "revocation_eligible_without_relief": {
        +      "type": "boolean"
        +    },
        +    "revocation_eligible_without_relief_declared": {
        +      "type": "boolean"
        +    },
        +    "revocation_exposure_material": {
        +      "type": "boolean"
        +    },
        +    "version_stale": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_conversion_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_checks_pass": {
        +      "type": "boolean"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "receipt": {
        +      "properties": {
        +        "binding_sha256": {
        +          "type": "string"
        +        },
        +        "converter": {
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "version": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "input": {
        +          "properties": {
        +            "format": {
        +              "type": "string"
        +            },
        +            "sha256": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "output": {
        +          "properties": {
        +            "format": {
        +              "type": "string"
        +            },
        +            "sha256": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parameters": {
        +          "properties": {
        +            "heading_ids": {
        +              "type": "boolean"
        +            },
        +            "table_support": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "receipt_version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_digest_manifest1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_checks_pass": {
        +      "type": "boolean"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "manifest": {
        +      "properties": {
        +        "entries": {
        +          "items": {
        +            "properties": {
        +              "bytes": {
        +                "type": "integer"
        +              },
        +              "media_type": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "sha256": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "entry_count": {
        +          "type": "integer"
        +        },
        +        "manifest_sha256": {
        +          "type": "string"
        +        },
        +        "manifest_version": {
        +          "type": "string"
        +        },
        +        "purpose": {
        +          "type": "string"
        +        },
        +        "sort": {
        +          "type": "string"
        +        },
        +        "total_bytes": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_dora_roi_register1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "contracts": {
        +      "items": {
        +        "properties": {
        +          "contract_id": {
        +            "type": "string"
        +          },
        +          "contract_reference": {
        +            "type": "string"
        +          },
        +          "end_date": {
        +            "type": "string"
        +          },
        +          "function_id": {
        +            "type": "string"
        +          },
        +          "governing_law": {
        +            "type": "string"
        +          },
        +          "provider_id": {
        +            "type": "string"
        +          },
        +          "start_date": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "entity": {
        +      "properties": {
        +        "entity_lei": {
        +          "type": "string"
        +        },
        +        "entity_name": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "functions": {
        +      "items": {
        +        "properties": {
        +          "critical": {
        +            "type": "boolean"
        +          },
        +          "function_id": {
        +            "type": "string"
        +          },
        +          "function_type": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "provider_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "providers": {
        +      "items": {
        +        "properties": {
        +          "country": {
        +            "type": "string"
        +          },
        +          "lei": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "provider_id": {
        +            "type": "string"
        +          },
        +          "service_type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "validation_report": {
        +      "properties": {
        +        "compliance_flags": {
        +          "type": "array"
        +        },
        +        "findings": {
        +          "items": {
        +            "properties": {
        +              "check": {
        +                "type": "string"
        +              },
        +              "message": {
        +                "type": "string"
        +              },
        +              "record_id": {
        +                "type": "string"
        +              },
        +              "record_type": {
        +                "type": "string"
        +              },
        +              "status": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "summary": {
        +          "properties": {
        +            "checks": {
        +              "properties": {
        +                "lei_validity": {
        +                  "properties": {
        +                    "fail": {
        +                      "type": "integer"
        +                    },
        +                    "pass": {
        +                      "type": "integer"
        +                    }
        +                  },
        +                  "type": "object"
        +                },
        +                "mandatory_fields": {
        +                  "properties": {
        +                    "fail": {
        +                      "type": "integer"
        +                    },
        +                    "pass": {
        +                      "type": "integer"
        +                    }
        +                  },
        +                  "type": "object"
        +                },
        +                "referential_integrity": {
        +                  "properties": {
        +                    "fail": {
        +                      "type": "integer"
        +                    },
        +                    "pass": {
        +                      "type": "integer"
        +                    }
        +                  },
        +                  "type": "object"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "contract_count": {
        +              "type": "integer"
        +            },
        +            "entity_count": {
        +              "type": "integer"
        +            },
        +            "function_count": {
        +              "type": "integer"
        +            },
        +            "overall_pass": {
        +              "type": "boolean"
        +            },
        +            "provider_count": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "table_source": {
        +          "type": "string"
        +        },
        +        "table_version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_dual_control_certification1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "agent_parity_findings": {
        +      "type": "array"
        +    },
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "boundary": {
        +      "type": "string"
        +    },
        +    "counted_identities": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "counted_records": {
        +      "items": {
        +        "properties": {
        +          "actor_type": {
        +            "type": "string"
        +          },
        +          "identity_id": {
        +            "type": "string"
        +          },
        +          "record_hash": {
        +            "type": "string"
        +          },
        +          "record_ref": {
        +            "type": "string"
        +          },
        +          "verification_method": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "distinct_identities_counted": {
        +      "type": "integer"
        +    },
        +    "distinctness_basis": {
        +      "type": "string"
        +    },
        +    "duplicate_identities_collapsed": {
        +      "type": "array"
        +    },
        +    "foreign_subject_records_rejected": {
        +      "type": "array"
        +    },
        +    "no_arithmetic_claim": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "off_role_records_ignored": {
        +      "type": "array"
        +    },
        +    "override_handling": {
        +      "type": "string"
        +    },
        +    "override_records": {
        +      "type": "array"
        +    },
        +    "prepared_by": {
        +      "properties": {
        +        "actor_type": {
        +          "type": "string"
        +        },
        +        "identity_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "records_summary": {
        +      "properties": {
        +        "agent_finding_count": {
        +          "type": "integer"
        +        },
        +        "counted_record_count": {
        +          "type": "integer"
        +        },
        +        "distinct_identities_counted": {
        +          "type": "integer"
        +        },
        +        "duplicate_identity_count": {
        +          "type": "integer"
        +        },
        +        "foreign_subject_rejected_count": {
        +          "type": "integer"
        +        },
        +        "off_role_ignored_count": {
        +          "type": "integer"
        +        },
        +        "override_record_count": {
        +          "type": "integer"
        +        },
        +        "rejection_record_count": {
        +          "type": "integer"
        +        },
        +        "supplied_count": {
        +          "type": "integer"
        +        },
        +        "unsigned_rejected_count": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "regime": {
        +      "properties": {
        +        "basis": {
        +          "type": "string"
        +        },
        +        "certification_ref": {
        +          "type": "string"
        +        },
        +        "regime_label": {
        +          "type": "string"
        +        },
        +        "regime_label_is_free_text": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rejection_records": {
        +      "type": "array"
        +    },
        +    "role_policy": {
        +      "properties": {
        +        "permitted_roles": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "read_only_roles": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "reason": {
        +          "type": "string"
        +        },
        +        "required_role": {
        +          "type": "string"
        +        },
        +        "role_eligible": {
        +          "type": "boolean"
        +        },
        +        "role_known": {
        +          "type": "boolean"
        +        },
        +        "role_read_only": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "subject": {
        +      "properties": {
        +        "subject_binding_source": {
        +          "type": "string"
        +        },
        +        "subject_class": {
        +          "type": "string"
        +        },
        +        "subject_hash": {
        +          "type": "string"
        +        },
        +        "subject_limit": {
        +          "type": "string"
        +        },
        +        "subject_present": {
        +          "type": "boolean"
        +        },
        +        "subject_recomputed_here": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "threshold_policy": {
        +      "properties": {
        +        "dual_control": {
        +          "type": "boolean"
        +        },
        +        "reason": {
        +          "type": "string"
        +        },
        +        "threshold_construction": {
        +          "type": "string"
        +        },
        +        "threshold_n": {
        +          "type": "integer"
        +        },
        +        "threshold_valid": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "threshold_satisfied": {
        +      "type": "boolean"
        +    },
        +    "threshold_shortfall": {
        +      "type": "integer"
        +    },
        +    "unsigned_records_rejected": {
        +      "type": "array"
        +    },
        +    "verdict_reason": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_einvoice_transmission_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "claim_strength": {
        +      "type": "string"
        +    },
        +    "document_sha256": {
        +      "type": "string"
        +    },
        +    "embedded_xml_sha256": {
        +      "type": "string"
        +    },
        +    "format": {
        +      "type": "string"
        +    },
        +    "format_gate_passed": {
        +      "type": "boolean"
        +    },
        +    "ha_wiring": {
        +      "properties": {
        +        "enforcement": {
        +          "type": "string"
        +        },
        +        "override_gate_policy": {
        +          "type": "string"
        +        },
        +        "release_gate_policy": {
        +          "type": "string"
        +        },
        +        "release_gate_role": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "routed_mandate": {
        +      "properties": {
        +        "applicable_format": {
        +          "type": "string"
        +        },
        +        "mandatory_from": {
        +          "type": "string"
        +        },
        +        "phase_status": {
        +          "type": "string"
        +        },
        +        "regime_country": {
        +          "type": "string"
        +        },
        +        "table_version": {
        +          "type": "string"
        +        },
        +        "transmission_channel": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "steps": {
        +      "items": {
        +        "properties": {
        +          "gate_passed": {
        +            "type": "boolean"
        +          },
        +          "mcp_name": {
        +            "type": "string"
        +          },
        +          "tool_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "validated": {
        +      "type": "boolean"
        +    },
        +    "vat_gate_passed": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_etr_possession_chain1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "chain_continuous": {
        +      "type": "boolean"
        +    },
        +    "continuity_breaks": {
        +      "type": "array"
        +    },
        +    "document_digest": {
        +      "type": "string"
        +    },
        +    "event_count": {
        +      "type": "integer"
        +    },
        +    "final_holder": {
        +      "type": "string"
        +    },
        +    "merkle_root": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "possession_receipts": {
        +      "type": "string"
        +    },
        +    "timestamp_order_valid": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_fria_monitoring_plan1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "affected_rights": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "applicable_date_note": {
        +      "type": "string"
        +    },
        +    "deployment": {
        +      "properties": {
        +        "affected_persons": {
        +          "type": "string"
        +        },
        +        "automation_level": {
        +          "type": "string"
        +        },
        +        "use_case": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fria_gaps": {
        +      "items": {
        +        "properties": {
        +          "element": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "remediation": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fria_grade": {
        +      "type": "string"
        +    },
        +    "fria_score": {
        +      "type": "integer"
        +    },
        +    "incident_path": {
        +      "properties": {
        +        "mapped": {
        +          "type": "boolean"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "recommendation": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "logging_verdict": {
        +      "type": "string"
        +    },
        +    "monitoring_plan_skeleton": {
        +      "properties": {
        +        "applicable_date_note": {
        +          "type": "string"
        +        },
        +        "metrics": {
        +          "items": {
        +            "properties": {
        +              "action": {
        +                "type": "string"
        +              },
        +              "frequency": {
        +                "type": "string"
        +              },
        +              "metric": {
        +                "type": "string"
        +              },
        +              "threshold": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "responsible_function": {
        +          "type": "string"
        +        },
        +        "review_cadence": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_score": {
        +      "type": "number"
        +    },
        +    "oversight_verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_idv_verification_incident_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cross_linked": {
        +      "type": "boolean"
        +    },
        +    "escalation_cross_link": {
        +      "properties": {
        +        "escalation_record_hash": {
        +          "type": "string"
        +        },
        +        "escalation_record_hash_well_formed": {
        +          "type": "boolean"
        +        },
        +        "failure_receipt_hash": {
        +          "type": "string"
        +        },
        +        "failure_receipt_hash_well_formed": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "evidence_count": {
        +      "type": "integer"
        +    },
        +    "failure_classification": {
        +      "properties": {
        +        "description": {
        +          "type": "string"
        +        },
        +        "detected_at": {
        +          "type": "string"
        +        },
        +        "failure_type": {
        +          "type": "string"
        +        },
        +        "failure_type_coerced_from_unknown_type": {
        +          "type": "boolean"
        +        },
        +        "incident_id": {
        +          "type": "string"
        +        },
        +        "severity_class": {
        +          "type": "string"
        +        },
        +        "severity_coerced_from_forbidden_class": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "invalid_evidence_count": {
        +      "type": "integer"
        +    },
        +    "record_claim_strength": {
        +      "type": "string"
        +    },
        +    "record_note": {
        +      "type": "string"
        +    },
        +    "remediation": {
        +      "properties": {
        +        "notes": {
        +          "type": "string"
        +        },
        +        "status": {
        +          "type": "string"
        +        },
        +        "status_coerced_from_forbidden_class": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "session_evidence": {
        +      "items": {
        +        "properties": {
        +          "digest": {
        +            "type": "string"
        +          },
        +          "evidence_type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "session_receipt": {
        +      "properties": {
        +        "receipt_hash": {
        +          "type": "string"
        +        },
        +        "receipt_hash_well_formed": {
        +          "type": "boolean"
        +        },
        +        "session_id": {
        +          "type": "string"
        +        },
        +        "verifier_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_model_inventory_entry1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ai_ml_model": {
        +      "type": "boolean"
        +    },
        +    "completeness_score": {
        +      "type": "integer"
        +    },
        +    "complexity_score": {
        +      "type": "integer"
        +    },
        +    "inventory_record": {
        +      "properties": {
        +        "business_purpose": {
        +          "type": "string"
        +        },
        +        "deployment_date": {
        +          "type": "string"
        +        },
        +        "development_date": {
        +          "type": "string"
        +        },
        +        "last_validation_date": {
        +          "type": "string"
        +        },
        +        "model_name": {
        +          "type": "string"
        +        },
        +        "model_owner": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "materiality_score": {
        +      "type": "integer"
        +    },
        +    "missing_required_fields": {
        +      "type": "array"
        +    },
        +    "model_name": {
        +      "type": "string"
        +    },
        +    "third_party_vendor": {
        +      "type": "boolean"
        +    },
        +    "tier": {
        +      "type": "string"
        +    },
        +    "tier_sum": {
        +      "type": "integer"
        +    },
        +    "usage_scope": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_no_russia_clause_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "clause_text": {
        +      "type": "string"
        +    },
        +    "completeness_grade": {
        +      "type": "string"
        +    },
        +    "eu_20th_note": {
        +      "type": "string"
        +    },
        +    "evidence_checklist": {
        +      "items": {
        +        "properties": {
        +          "item": {
        +            "type": "string"
        +          },
        +          "required": {
        +            "type": "boolean"
        +          },
        +          "source": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "missing_required_items": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "required_items_met": {
        +      "type": "integer"
        +    },
        +    "required_items_total": {
        +      "type": "integer"
        +    },
        +    "template_used": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_pld_disclosure_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "alleged_defect": {
        +      "type": "string"
        +    },
        +    "anchor": {
        +      "type": "string"
        +    },
        +    "disputed_window": {
        +      "properties": {
        +        "from": {
        +          "type": "string"
        +        },
        +        "to": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "gap_in_window": {
        +      "type": "boolean"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "product_ref": {
        +      "type": "string"
        +    },
        +    "rebuttal_mapping": {
        +      "items": {
        +        "properties": {
        +          "presumption_trigger": {
        +            "type": "string"
        +          },
        +          "rebutting_receipts": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "replay_instructions": {
        +      "type": "string"
        +    },
        +    "trace_digest": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_product_lineage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "depth": {
        +      "type": "integer"
        +    },
        +    "lineage": {
        +      "items": {
        +        "properties": {
        +          "anchored": {
        +            "type": "boolean"
        +          },
        +          "certification": {
        +            "type": "string"
        +          },
        +          "dataVersion": {
        +            "type": "string"
        +          },
        +          "depth": {
        +            "type": "integer"
        +          },
        +          "stage": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "product_id": {
        +      "type": "string"
        +    },
        +    "total_carbon": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_public_money_settlement_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "amount_collected": {
        +      "type": "integer"
        +    },
        +    "amount_credited": {
        +      "type": "number"
        +    },
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "at_par": {
        +      "type": "boolean"
        +    },
        +    "at_par_discrepancy": {
        +      "type": "integer"
        +    },
        +    "attributed_ministry": {
        +      "type": "string"
        +    },
        +    "attribution_matched": {
        +      "type": "boolean"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "declared_revenue_code": {
        +      "type": "string"
        +    },
        +    "exceptions": {
        +      "type": "array"
        +    },
        +    "expected_credit": {
        +      "type": "number"
        +    },
        +    "fees": {
        +      "items": {
        +        "properties": {
        +          "amount": {
        +            "type": "number"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "payer_class": {
        +      "type": "string"
        +    },
        +    "payer_class_valid": {
        +      "type": "boolean"
        +    },
        +    "payment_ref": {
        +      "type": "string"
        +    },
        +    "rails": {
        +      "items": {
        +        "properties": {
        +          "declared_finality_basis": {
        +            "type": "string"
        +          },
        +          "rail": {
        +            "type": "string"
        +          },
        +          "rail_valid": {
        +            "type": "boolean"
        +          },
        +          "settled": {
        +            "type": "boolean"
        +          },
        +          "settlement_ref": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "reconciled": {
        +      "type": "boolean"
        +    },
        +    "reconciliation_window": {
        +      "type": "string"
        +    },
        +    "single_settlement_status": {
        +      "type": "string"
        +    },
        +    "total_fees_itemised": {
        +      "type": "number"
        +    },
        +    "treasury_account_credited": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_rights_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_checks_pass": {
        +      "type": "boolean"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "record_hash": {
        +      "type": "string"
        +    },
        +    "rights_row": {
        +      "properties": {
        +        "asset_ref": {
        +          "type": "string"
        +        },
        +        "license_id": {
        +          "type": "string"
        +        },
        +        "licensee": {
        +          "type": "string"
        +        },
        +        "licensor": {
        +          "type": "string"
        +        },
        +        "renewal": {
        +          "type": "string"
        +        },
        +        "rights_vector": {
        +          "properties": {
        +            "attribution": {
        +              "type": "boolean"
        +            },
        +            "commercial": {
        +              "type": "boolean"
        +            },
        +            "copy": {
        +              "type": "boolean"
        +            },
        +            "display": {
        +              "type": "boolean"
        +            },
        +            "exclusive": {
        +              "type": "boolean"
        +            },
        +            "modify": {
        +              "type": "boolean"
        +            },
        +            "revocable": {
        +              "type": "boolean"
        +            },
        +            "share_alike": {
        +              "type": "boolean"
        +            },
        +            "sublicense": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "term_years": {
        +          "type": "integer"
        +        },
        +        "territory": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_safeguarding_audit_evidence1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "accountability_trail": {
        +      "properties": {
        +        "agent_parity_findings": {
        +          "type": "array"
        +        },
        +        "by_role": {
        +          "properties": {
        +            "approver": {
        +              "properties": {
        +                "approval_count": {
        +                  "type": "integer"
        +                },
        +                "counted_identities": {
        +                  "items": {
        +                    "type": "string"
        +                  },
        +                  "type": "array"
        +                },
        +                "counted_identity_count": {
        +                  "type": "integer"
        +                },
        +                "held_by": {
        +                  "type": "string"
        +                },
        +                "reason": {
        +                  "type": "string"
        +                },
        +                "record_count": {
        +                  "type": "integer"
        +                },
        +                "rejection_count": {
        +                  "type": "integer"
        +                },
        +                "role": {
        +                  "type": "string"
        +                },
        +                "status": {
        +                  "type": "string"
        +                },
        +                "unsigned_approval_count": {
        +                  "type": "integer"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "preparer": {
        +              "properties": {
        +                "approval_count": {
        +                  "type": "integer"
        +                },
        +                "counted_identities": {
        +                  "items": {
        +                    "type": "string"
        +                  },
        +                  "type": "array"
        +                },
        +                "counted_identity_count": {
        +                  "type": "integer"
        +                },
        +                "held_by": {
        +                  "type": "string"
        +                },
        +                "reason": {
        +                  "type": "string"
        +                },
        +                "record_count": {
        +                  "type": "integer"
        +                },
        +                "rejection_count": {
        +                  "type": "integer"
        +                },
        +                "role": {
        +                  "type": "string"
        +                },
        +                "status": {
        +                  "type": "string"
        +                },
        +                "unsigned_approval_count": {
        +                  "type": "integer"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "reviewer": {
        +              "properties": {
        +                "approval_count": {
        +                  "type": "integer"
        +                },
        +                "counted_identities": {
        +                  "items": {
        +                    "type": "string"
        +                  },
        +                  "type": "array"
        +                },
        +                "counted_identity_count": {
        +                  "type": "integer"
        +                },
        +                "held_by": {
        +                  "type": "string"
        +                },
        +                "reason": {
        +                  "type": "string"
        +                },
        +                "record_count": {
        +                  "type": "integer"
        +                },
        +                "rejection_count": {
        +                  "type": "integer"
        +                },
        +                "role": {
        +                  "type": "string"
        +                },
        +                "status": {
        +                  "type": "string"
        +                },
        +                "unsigned_approval_count": {
        +                  "type": "integer"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "distinctness_basis": {
        +          "type": "string"
        +        },
        +        "foreign_subject_record_count": {
        +          "type": "integer"
        +        },
        +        "override_handling": {
        +          "type": "string"
        +        },
        +        "override_record_count": {
        +          "type": "integer"
        +        },
        +        "record_count_over_subject": {
        +          "type": "integer"
        +        },
        +        "required_roles": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "roles_required_count": {
        +          "type": "integer"
        +        },
        +        "roles_satisfied_count": {
        +          "type": "integer"
        +        },
        +        "status": {
        +          "type": "string"
        +        },
        +        "subject_hash": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "audit_period": {
        +      "properties": {
        +        "bounds_present": {
        +          "type": "boolean"
        +        },
        +        "end_date": {
        +          "type": "string"
        +        },
        +        "order_valid": {
        +          "type": "boolean"
        +        },
        +        "start_date": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "auditor_opinions": {
        +      "items": {
        +        "properties": {
        +          "assurance_basis": {
        +            "type": "string"
        +          },
        +          "citation_id": {
        +            "type": "string"
        +          },
        +          "decided_by": {
        +            "type": "string"
        +          },
        +          "opinion_question": {
        +            "type": "string"
        +          },
        +          "opinion_ref": {
        +            "type": "string"
        +          },
        +          "outcome": {
        +            "type": "string"
        +          },
        +          "permitted_outcomes": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "citations": {
        +      "properties": {
        +        "discrepancy_treatment": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "external_frequency": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "internal_frequency": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "safeguarding_audit": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "safeguarding_requirement": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "safeguarding_resource": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "evidence_items": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          },
        +          "present": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "exception_count": {
        +      "type": "integer"
        +    },
        +    "exception_schedule": {
        +      "type": "array"
        +    },
        +    "firm_ref": {
        +      "type": "string"
        +    },
        +    "method_summary": {
        +      "properties": {
        +        "audit_exemption_indicator": {
        +          "properties": {
        +            "basis": {
        +              "type": "string"
        +            },
        +            "outcome": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "classification_verdict": {
        +          "type": "string"
        +        },
        +        "coherent_count": {
        +          "type": "integer"
        +        },
        +        "incoherent_count": {
        +          "type": "integer"
        +        },
        +        "open_judgment_count": {
        +          "type": "integer"
        +        },
        +        "stream_count": {
        +          "type": "integer"
        +        },
        +        "supplied": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "minor_unit_exponent": {
        +      "type": "integer"
        +    },
        +    "missing_items": {
        +      "type": "array"
        +    },
        +    "no_arithmetic_claim": {
        +      "type": "string"
        +    },
        +    "not_a_filing": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "pack_complete": {
        +      "type": "boolean"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reconciliation_summary": {
        +      "properties": {
        +        "entries": {
        +          "items": {
        +            "properties": {
        +              "as_of_date": {
        +                "type": "string"
        +              },
        +              "currency": {
        +                "type": "string"
        +              },
        +              "date_stated": {
        +                "type": "boolean"
        +              },
        +              "difference_direction": {
        +                "type": "string"
        +              },
        +              "difference_display": {
        +                "type": "string"
        +              },
        +              "entry_ref": {
        +                "type": "string"
        +              },
        +              "reconciliation_type": {
        +                "type": "string"
        +              },
        +              "safeguarding_requirement_display": {
        +                "type": "string"
        +              },
        +              "safeguarding_resource_display": {
        +                "type": "string"
        +              },
        +              "verdict": {
        +                "type": "string"
        +              },
        +              "within_period": {
        +                "type": "boolean"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "entry_count": {
        +          "type": "integer"
        +        },
        +        "excess_count": {
        +          "type": "integer"
        +        },
        +        "outside_period_count": {
        +          "type": "integer"
        +        },
        +        "reconciled_count": {
        +          "type": "integer"
        +        },
        +        "shortfall_count": {
        +          "type": "integer"
        +        },
        +        "undated_count": {
        +          "type": "integer"
        +        },
        +        "unstated_verdict_count": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "report_vocabulary": {
        +      "properties": {
        +        "assurance_basis": {
        +          "type": "string"
        +        },
        +        "exception_schedule_key": {
        +          "type": "string"
        +        },
        +        "management_response_required_per_item": {
        +          "type": "boolean"
        +        },
        +        "opinion_refs": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "permitted_opinion_outcomes": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "sourced_from": {
        +          "type": "string"
        +        },
        +        "sourced_on": {
        +          "type": "string"
        +        },
        +        "vocabulary_basis": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ruleset": {
        +      "properties": {
        +        "field_set_version": {
        +          "type": "string"
        +        },
        +        "in_force_from": {
        +          "type": "string"
        +        },
        +        "ruleset_id": {
        +          "type": "string"
        +        },
        +        "ruleset_label": {
        +          "type": "string"
        +        },
        +        "sourced_from": {
        +          "type": "string"
        +        },
        +        "sourced_on": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "subject": {
        +      "properties": {
        +        "binding_complete": {
        +          "type": "boolean"
        +        },
        +        "binding_source_tool_id": {
        +          "type": "string"
        +        },
        +        "inputs_digest_source": {
        +          "type": "string"
        +        },
        +        "producer_pinned": {
        +          "type": "boolean"
        +        },
        +        "subject_class": {
        +          "type": "string"
        +        },
        +        "subject_hash": {
        +          "type": "string"
        +        },
        +        "subject_preimage": {
        +          "properties": {
        +            "artifact": {
        +              "properties": {
        +                "content_digest": {
        +                  "type": "string"
        +                },
        +                "content_type": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "inputs_digest": {
        +              "type": "string"
        +            },
        +            "tool_ref": {
        +              "properties": {
        +                "entry": {
        +                  "type": "string"
        +                },
        +                "manifest_digest": {
        +                  "type": "string"
        +                },
        +                "tool_id": {
        +                  "type": "string"
        +                },
        +                "tool_version": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "subject_recomputed_here": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_sanctions_screening_evidence_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "evidence_pack": {
        +      "properties": {
        +        "caller_computed_digest": {
        +          "type": "string"
        +        },
        +        "dataset_id": {
        +          "type": "string"
        +        },
        +        "dataset_version": {
        +          "type": "string"
        +        },
        +        "digest_algo": {
        +          "type": "string"
        +        },
        +        "digest_match": {
        +          "type": "boolean"
        +        },
        +        "published_digest": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        },
        +        "screening_decision": {
        +          "type": "string"
        +        },
        +        "screening_match_count": {
        +          "type": "integer"
        +        },
        +        "screening_query": {
        +          "type": "string"
        +        },
        +        "verdict": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_traiga_safe_harbor_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "coverage_band": {
        +      "type": "string"
        +    },
        +    "eligible_for_affirmative_defense_evidence": {
        +      "type": "boolean"
        +    },
        +    "framing": {
        +      "type": "string"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "meets_substantial_compliance_bar": {
        +      "type": "boolean"
        +    },
        +    "overall_coverage": {
        +      "type": "string"
        +    },
        +    "prohibited_use_detected": {
        +      "type": "string"
        +    },
        +    "statute_citation": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_validator_change_control_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "authorization_chain": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "authorized": {
        +      "type": "boolean"
        +    },
        +    "change_type": {
        +      "type": "string"
        +    },
        +    "change_type_valid": {
        +      "type": "boolean"
        +    },
        +    "effective_epoch": {
        +      "type": "string"
        +    },
        +    "exceptions": {
        +      "type": "array"
        +    },
        +    "posterior_weight": {
        +      "type": "integer"
        +    },
        +    "prior_weight": {
        +      "type": "integer"
        +    },
        +    "quorum_achieved": {
        +      "type": "integer"
        +    },
        +    "quorum_required": {
        +      "type": "integer"
        +    },
        +    "quorum_status": {
        +      "type": "string"
        +    },
        +    "share_of_total_pct": {
        +      "type": "number"
        +    },
        +    "total_stake_weight": {
        +      "type": "integer"
        +    },
        +    "validator_ref": {
        +      "type": "string"
        +    },
        +    "weight_delta": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedbuild_vop_session_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attempt_count": {
        +      "type": "integer"
        +    },
        +    "chain_genesis_hash": {
        +      "type": "string"
        +    },
        +    "final_match_band": {
        +      "type": "string"
        +    },
        +    "final_receipt_hash": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "session_id": {
        +      "type": "string"
        +    },
        +    "session_outcome": {
        +      "type": "string"
        +    },
        +    "session_receipts": {
        +      "type": "string"
        +    },
        +    "warning_overridden": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_basis_risk_nii_shock1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "basis_risk_delta_nii": {
        +      "type": "integer"
        +    },
        +    "basis_risk_pct_of_parallel": {
        +      "type": "number"
        +    },
        +    "convention": {
        +      "type": "string"
        +    },
        +    "horizon_months": {
        +      "type": "integer"
        +    },
        +    "index_results": {
        +      "items": {
        +        "properties": {
        +          "asset_balance": {
        +            "type": "integer"
        +          },
        +          "beta_vs_reference": {
        +            "type": "integer"
        +          },
        +          "index_name": {
        +            "type": "string"
        +          },
        +          "index_shock_bps": {
        +            "type": "integer"
        +          },
        +          "liability_balance": {
        +            "type": "integer"
        +          },
        +          "net_exposure": {
        +            "type": "integer"
        +          },
        +          "nii_contribution": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "is_material": {
        +      "type": "boolean"
        +    },
        +    "material_threshold_pct": {
        +      "type": "number"
        +    },
        +    "parallel_delta_nii": {
        +      "type": "integer"
        +    },
        +    "reference_shock_bps": {
        +      "type": "integer"
        +    },
        +    "total_net_exposure": {
        +      "type": "integer"
        +    },
        +    "total_nii_contribution": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_cbam_embedded_emissions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "basis": {
        +      "type": "string"
        +    },
        +    "cn_code": {
        +      "type": "string"
        +    },
        +    "country_of_origin": {
        +      "type": "string"
        +    },
        +    "data_quality_flag": {
        +      "type": "string"
        +    },
        +    "default_markup_applied": {
        +      "type": "boolean"
        +    },
        +    "good_category": {
        +      "type": "string"
        +    },
        +    "monitoring_method": {
        +      "type": "string"
        +    },
        +    "precursor_contribution": {
        +      "type": "integer"
        +    },
        +    "quantity_tonnes": {
        +      "type": "integer"
        +    },
        +    "reference": {
        +      "properties": {
        +        "default_data": {
        +          "type": "string"
        +        },
        +        "methodology": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "see_direct": {
        +      "type": "number"
        +    },
        +    "see_indirect": {
        +      "type": "number"
        +    },
        +    "see_total": {
        +      "type": "number"
        +    },
        +    "total_embedded_emissions_tco2e": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_cecl_ecl_allowance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "boundary_note": {
        +      "type": "string"
        +    },
        +    "charge_offs_usd": {
        +      "type": "integer"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "delta_vs_required_usd": {
        +      "type": "integer"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "forecast_weights": {
        +      "items": {
        +        "properties": {
        +          "scenario": {
        +            "type": "string"
        +          },
        +          "weight": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "method": {
        +      "type": "string"
        +    },
        +    "prior_allowance_balance_usd": {
        +      "type": "integer"
        +    },
        +    "provision_expense_usd": {
        +      "type": "integer"
        +    },
        +    "reconciled_ending_allowance_usd": {
        +      "type": "integer"
        +    },
        +    "reconciliation_balanced": {
        +      "type": "boolean"
        +    },
        +    "recoveries_usd": {
        +      "type": "integer"
        +    },
        +    "segment_count": {
        +      "type": "integer"
        +    },
        +    "segments": {
        +      "items": {
        +        "properties": {
        +          "ead_usd": {
        +            "type": "integer"
        +          },
        +          "exposure_balance_usd": {
        +            "type": "integer"
        +          },
        +          "lgd_pct": {
        +            "type": "integer"
        +          },
        +          "remaining_life_years": {
        +            "type": "integer"
        +          },
        +          "scenario_count": {
        +            "type": "integer"
        +          },
        +          "scenarios": {
        +            "items": {
        +              "properties": {
        +                "scenario": {
        +                  "type": "string"
        +                },
        +                "scenario_ecl_usd": {
        +                  "type": "integer"
        +                },
        +                "weight": {
        +                  "type": "number"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "segment_ecl_usd": {
        +            "type": "integer"
        +          },
        +          "segment_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_required_allowance_usd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_claims_stp_economics1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annual_cashflows": {
        +      "items": {
        +        "properties": {
        +          "cashflow": {
        +            "type": "integer"
        +          },
        +          "discounted_cashflow": {
        +            "type": "number"
        +          },
        +          "year": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "annual_handling_savings": {
        +      "type": "integer"
        +    },
        +    "cost_reduction_pct": {
        +      "type": "number"
        +    },
        +    "cost_reduction_per_claim": {
        +      "type": "number"
        +    },
        +    "current_annual_cost": {
        +      "type": "integer"
        +    },
        +    "current_avg_cost_per_claim": {
        +      "type": "integer"
        +    },
        +    "current_manual_claims": {
        +      "type": "integer"
        +    },
        +    "current_stp_claims": {
        +      "type": "integer"
        +    },
        +    "discount_rate_pct": {
        +      "type": "integer"
        +    },
        +    "irr_pct": {
        +      "type": "number"
        +    },
        +    "leakage_increase": {
        +      "type": "integer"
        +    },
        +    "leakage_reduction": {
        +      "type": "integer"
        +    },
        +    "net_annual_benefit": {
        +      "type": "integer"
        +    },
        +    "net_leakage_impact": {
        +      "type": "integer"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "npv": {
        +      "type": "number"
        +    },
        +    "payback_years": {
        +      "type": "number"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "projection_years": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "stp_rate_improvement_ppt": {
        +      "type": "integer"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "target_annual_cost": {
        +      "type": "integer"
        +    },
        +    "target_avg_cost_per_claim": {
        +      "type": "number"
        +    },
        +    "target_manual_claims": {
        +      "type": "integer"
        +    },
        +    "target_stp_claims": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_csdr_penalty1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "asset_class": {
        +      "type": "string"
        +    },
        +    "batch_detail": {
        +      "type": "string"
        +    },
        +    "batch_total_exposure": {
        +      "type": "integer"
        +    },
        +    "daily_rate_bps": {
        +      "type": "integer"
        +    },
        +    "fail_days": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "notional": {
        +      "type": "integer"
        +    },
        +    "partial_credit": {
        +      "type": "integer"
        +    },
        +    "partial_settled_pct": {
        +      "type": "integer"
        +    },
        +    "penalty_amount": {
        +      "type": "integer"
        +    },
        +    "penalty_type": {
        +      "type": "string"
        +    },
        +    "rate_table_version": {
        +      "type": "string"
        +    },
        +    "reference": {
        +      "properties": {
        +        "note": {
        +          "type": "string"
        +        },
        +        "regulation": {
        +          "type": "string"
        +        },
        +        "rts": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "reference_price": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_erc2981_royalty1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "claimed_royalty_amount": {
        +      "type": "string"
        +    },
        +    "computed_royalty_amount": {
        +      "type": "string"
        +    },
        +    "effective_royalty_pct": {
        +      "type": "string"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "overall_determination": {
        +      "type": "string"
        +    },
        +    "receiver": {
        +      "type": "string"
        +    },
        +    "related_tools": {
        +      "items": {
        +        "properties": {
        +          "relation": {
        +            "type": "string"
        +          },
        +          "tool_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "royalty_fraction_bps": {
        +      "type": "string"
        +    },
        +    "sale_price": {
        +      "type": "string"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_irrbb_eve_shocks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "buckets_used": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reference_parallel_shock_bps": {
        +      "type": "integer"
        +    },
        +    "shocks": {
        +      "properties": {
        +        "flattener": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parallel_down": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parallel_up": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "short_down": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "short_up": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "steepener": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "total_net_gap": {
        +      "type": "integer"
        +    },
        +    "worst_delta_eve": {
        +      "type": "number"
        +    },
        +    "worst_scenario": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_mica_own_funds1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "binding_basis": {
        +      "type": "string"
        +    },
        +    "fixed_overheads_quarter": {
        +      "type": "integer"
        +    },
        +    "form_eligible": {
        +      "type": "boolean"
        +    },
        +    "form_note": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "own_funds_held": {
        +      "type": "integer"
        +    },
        +    "permanent_minimum": {
        +      "type": "integer"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "required_own_funds": {
        +      "type": "integer"
        +    },
        +    "surplus_shortfall": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_nis2_penalty_exposure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "entity_classification": {
        +      "type": "string"
        +    },
        +    "infringement_breakdown": {
        +      "items": {
        +        "properties": {
        +          "fixed_max_eur": {
        +            "type": "integer"
        +          },
        +          "pct_based_eur": {
        +            "type": "integer"
        +          },
        +          "penalty_eur": {
        +            "type": "integer"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "max_penalty_eur": {
        +      "type": "integer"
        +    },
        +    "mitigated_estimate_eur": {
        +      "type": "integer"
        +    },
        +    "mitigating_factors_applied": {
        +      "type": "integer"
        +    },
        +    "turnover_pct_exposure": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_solvency2_scr_ratio1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "eligible_own_funds": {
        +      "type": "integer"
        +    },
        +    "mcr": {
        +      "type": "integer"
        +    },
        +    "mcr_breached": {
        +      "type": "boolean"
        +    },
        +    "mcr_coverage_ratio": {
        +      "type": "integer"
        +    },
        +    "scr": {
        +      "type": "integer"
        +    },
        +    "scr_breached": {
        +      "type": "boolean"
        +    },
        +    "scr_coverage_ratio": {
        +      "type": "integer"
        +    },
        +    "tier1_total_limit_ok": {
        +      "type": "boolean"
        +    },
        +    "tier1_total_pct_of_scr": {
        +      "type": "integer"
        +    },
        +    "tier1_unrestricted_limit_ok": {
        +      "type": "boolean"
        +    },
        +    "tier1_unrestricted_pct_of_scr": {
        +      "type": "integer"
        +    },
        +    "tier3_limit_ok": {
        +      "type": "boolean"
        +    },
        +    "tier3_pct_of_scr": {
        +      "type": "integer"
        +    },
        +    "tiering_ok": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcalculate_xva1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "cva": {
        +      "type": "number"
        +    },
        +    "cva_basis": {
        +      "type": "string"
        +    },
        +    "dva": {
        +      "type": "number"
        +    },
        +    "dva_basis": {
        +      "type": "string"
        +    },
        +    "fva": {
        +      "type": "number"
        +    },
        +    "fva_basis": {
        +      "type": "string"
        +    },
        +    "n_paths": {
        +      "type": "integer"
        +    },
        +    "n_steps": {
        +      "type": "integer"
        +    },
        +    "peak_epe": {
        +      "type": "number"
        +    },
        +    "peak_epe_pct_notional": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "xva": {
        +      "type": "number"
        +    },
        +    "xva_risk_rating": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcertify_license_election1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_checks_pass": {
        +      "type": "boolean"
        +    },
        +    "certificate": {
        +      "properties": {
        +        "asset_ref": {
        +          "type": "string"
        +        },
        +        "certificate_version": {
        +          "type": "string"
        +        },
        +        "certification_note": {
        +          "type": "string"
        +        },
        +        "disclaimer": {
        +          "type": "string"
        +        },
        +        "license_election": {
        +          "properties": {
        +            "family": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "params": {
        +              "properties": {},
        +              "type": "object"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "licensor_did": {
        +          "type": "string"
        +        },
        +        "terms_hash": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "terms_hash": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_agency_eligibility_matrix1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "actual": {
        +            "type": "integer"
        +          },
        +          "check": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          },
        +          "required": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "eligible": {
        +      "type": "boolean"
        +    },
        +    "eligible_flag": {
        +      "type": "string"
        +    },
        +    "fails": {
        +      "type": "array"
        +    },
        +    "max_cltv_pct": {
        +      "type": "integer"
        +    },
        +    "max_dti_pct": {
        +      "type": "integer"
        +    },
        +    "max_hcltv_pct": {
        +      "type": "integer"
        +    },
        +    "max_ltv_pct": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "product_notes": {
        +      "type": "array"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "underwriting_type": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_agent_attestation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fail": {
        +      "type": "integer"
        +    },
        +    "overall_status": {
        +      "type": "string"
        +    },
        +    "pass": {
        +      "type": "integer"
        +    },
        +    "root_agent_id": {
        +      "type": "string"
        +    },
        +    "scopes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "warn": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_agent_token_scope1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attenuation_depth": {
        +      "type": "integer"
        +    },
        +    "checks_run": {
        +      "type": "integer"
        +    },
        +    "enforcement": {
        +      "type": "string"
        +    },
        +    "failing_checks": {
        +      "type": "array"
        +    },
        +    "token_id": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_allocation_affirmation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cutoff_applied": {
        +      "type": "string"
        +    },
        +    "cutoff_timezone": {
        +      "type": "string"
        +    },
        +    "dual_date_note": {
        +      "type": "string"
        +    },
        +    "events_flagged": {
        +      "type": "array"
        +    },
        +    "format_nonconformance_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "on_time_events": {
        +      "type": "integer"
        +    },
        +    "on_time_rate": {
        +      "type": "integer"
        +    },
        +    "reference": {
        +      "properties": {
        +        "note": {
        +          "type": "string"
        +        },
        +        "rts": {
        +          "type": "string"
        +        },
        +        "rule": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "total_events": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_assessor_independence1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "architecture_type": {
        +      "type": "string"
        +    },
        +    "assessment_date": {
        +      "type": "string"
        +    },
        +    "assessment_route": {
        +      "type": "string"
        +    },
        +    "attestation_deadline": {
        +      "type": "string"
        +    },
        +    "cert_eligible": {
        +      "type": "boolean"
        +    },
        +    "date_eligible": {
        +      "type": "boolean"
        +    },
        +    "eligible": {
        +      "type": "boolean"
        +    },
        +    "failing_predicate": {
        +      "type": "string"
        +    },
        +    "independence_eligible": {
        +      "type": "boolean"
        +    },
        +    "overlapping_identities": {
        +      "type": "array"
        +    },
        +    "route_eligible": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_camera_provenance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "capture_chain_field": {
        +      "properties": {
        +        "label": {
        +          "type": "string"
        +        },
        +        "manifest_digest": {
        +          "type": "string"
        +        },
        +        "manifest_present": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "digital_source_type": {
        +      "type": "string"
        +    },
        +    "has_actions": {
        +      "type": "boolean"
        +    },
        +    "has_hard_binding": {
        +      "type": "boolean"
        +    },
        +    "manifest_present": {
        +      "type": "boolean"
        +    },
        +    "manifest_valid": {
        +      "type": "boolean"
        +    },
        +    "missing_elements": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "provenance_label": {
        +      "type": "string"
        +    },
        +    "rejected": {
        +      "type": "boolean"
        +    },
        +    "trained_algorithmic_media_flagged": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_capital_adequacy_private1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "above_minimum": {
        +      "type": "boolean"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "regulatory_minimum_pct": {
        +      "type": "number"
        +    },
        +    "tier": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_card_act_ability_to_pay1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ability_to_pay_result": {
        +      "type": "string"
        +    },
        +    "annual_income": {
        +      "type": "integer"
        +    },
        +    "annual_minimum_payments_est": {
        +      "type": "integer"
        +    },
        +    "dti_ratio": {
        +      "type": "integer"
        +    },
        +    "dti_threshold": {
        +      "type": "number"
        +    },
        +    "has_cosigner": {
        +      "type": "boolean"
        +    },
        +    "income_and_assets": {
        +      "type": "integer"
        +    },
        +    "method_a_sufficient": {
        +      "type": "boolean"
        +    },
        +    "method_b_sufficient": {
        +      "type": "boolean"
        +    },
        +    "method_used": {
        +      "type": "string"
        +    },
        +    "monthly_debt_obligations": {
        +      "type": "integer"
        +    },
        +    "monthly_housing_payment": {
        +      "type": "integer"
        +    },
        +    "monthly_income": {
        +      "type": "integer"
        +    },
        +    "monthly_minimum_payment_est": {
        +      "type": "integer"
        +    },
        +    "penalty_fee_safe_harbor": {
        +      "properties": {
        +        "first_violation": {
        +          "type": "integer"
        +        },
        +        "rule_note": {
        +          "type": "string"
        +        },
        +        "subsequent_within_6_cycles": {
        +          "type": "integer"
        +        },
        +        "table_version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "requested_credit_limit": {
        +      "type": "integer"
        +    },
        +    "requires_cosigner": {
        +      "type": "boolean"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_assets": {
        +      "type": "integer"
        +    },
        +    "total_monthly_obligations": {
        +      "type": "integer"
        +    },
        +    "under_21_restriction": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_client_porting1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "backup_member_consent_status": {
        +      "type": "string"
        +    },
        +    "backup_member_id": {
        +      "type": "string"
        +    },
        +    "citations": {
        +      "properties": {
        +        "customer_protection_segregation": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "segregation_and_portability": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "client_ref": {
        +      "type": "string"
        +    },
        +    "collateral": {
        +      "items": {
        +        "properties": {
        +          "amount_display": {
        +            "type": "string"
        +          },
        +          "amount_minor_units": {
        +            "type": "integer"
        +          },
        +          "asset_type": {
        +            "type": "string"
        +          },
        +          "collateral_id": {
        +            "type": "string"
        +          },
        +          "complete": {
        +            "type": "boolean"
        +          },
        +          "currency": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "collateral_complete": {
        +      "type": "boolean"
        +    },
        +    "collateral_count": {
        +      "type": "integer"
        +    },
        +    "default_event_at": {
        +      "type": "string"
        +    },
        +    "elapsed_minutes": {
        +      "type": "integer"
        +    },
        +    "evaluated_at": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "porting_window_hours": {
        +      "type": "integer"
        +    },
        +    "position_count": {
        +      "type": "integer"
        +    },
        +    "positions": {
        +      "items": {
        +        "properties": {
        +          "complete": {
        +            "type": "boolean"
        +          },
        +          "currency": {
        +            "type": "string"
        +          },
        +          "notional_display": {
        +            "type": "string"
        +          },
        +          "notional_minor_units": {
        +            "type": "integer"
        +          },
        +          "position_id": {
        +            "type": "string"
        +          },
        +          "product_type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "positions_complete": {
        +      "type": "boolean"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "total_collateral_display": {
        +      "type": "string"
        +    },
        +    "total_collateral_minor_units": {
        +      "type": "integer"
        +    },
        +    "total_notional_display": {
        +      "type": "string"
        +    },
        +    "total_notional_minor_units": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "window_minutes": {
        +      "type": "integer"
        +    },
        +    "window_missed": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_conforming_loan_limit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "applicable_limit": {
        +      "type": "integer"
        +    },
        +    "area_baseline": {
        +      "type": "integer"
        +    },
        +    "baseline_limit": {
        +      "type": "integer"
        +    },
        +    "classification": {
        +      "type": "string"
        +    },
        +    "conforming": {
        +      "type": "boolean"
        +    },
        +    "high_cost_ceiling": {
        +      "type": "integer"
        +    },
        +    "is_ak_hi_territory": {
        +      "type": "boolean"
        +    },
        +    "jumbo": {
        +      "type": "boolean"
        +    },
        +    "limit_tier": {
        +      "type": "string"
        +    },
        +    "loan_amount": {
        +      "type": "integer"
        +    },
        +    "loan_program": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "state_code": {
        +      "type": "string"
        +    },
        +    "super_conforming": {
        +      "type": "boolean"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "units": {
        +      "type": "integer"
        +    },
        +    "year": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_cra_annex1_completeness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annex1_complete": {
        +      "type": "boolean"
        +    },
        +    "conformity_route": {
        +      "type": "string"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_credit_concentration_topn_sector1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "portfolio_total": {
        +      "type": "integer"
        +    },
        +    "sector_breaches": {
        +      "items": {
        +        "properties": {
        +          "pct_of_portfolio": {
        +            "type": "integer"
        +          },
        +          "sector": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "sector_hhi": {
        +      "type": "number"
        +    },
        +    "sector_limit_pct": {
        +      "type": "integer"
        +    },
        +    "sector_totals": {
        +      "items": {
        +        "properties": {
        +          "amount": {
        +            "type": "integer"
        +          },
        +          "pct_of_portfolio": {
        +            "type": "integer"
        +          },
        +          "sector": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "single_name_breaches": {
        +      "items": {
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "pct_of_portfolio": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "single_name_hhi": {
        +      "type": "number"
        +    },
        +    "single_name_limit_pct": {
        +      "type": "integer"
        +    },
        +    "top_n": {
        +      "type": "integer"
        +    },
        +    "top_n_exposures": {
        +      "items": {
        +        "properties": {
        +          "amount": {
        +            "type": "integer"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "pct_of_portfolio": {
        +            "type": "number"
        +          },
        +          "sector": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "worst_sector": {
        +      "type": "string"
        +    },
        +    "worst_single_name": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_cscf_control_applicability1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "advisory_coverage_pct": {
        +      "type": "integer"
        +    },
        +    "applicable_advisory_count": {
        +      "type": "integer"
        +    },
        +    "applicable_mandatory_count": {
        +      "type": "integer"
        +    },
        +    "architecture_type": {
        +      "type": "string"
        +    },
        +    "component_inventory": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "cscf_version": {
        +      "type": "string"
        +    },
        +    "evidence_index": {
        +      "properties": {
        +        "1.1": {
        +          "properties": {
        +            "evidence_provided": {
        +              "type": "boolean"
        +            },
        +            "evidence_ref": {
        +              "type": "string"
        +            },
        +            "tier": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "1.2": {
        +          "properties": {
        +            "evidence_provided": {
        +              "type": "boolean"
        +            },
        +            "evidence_ref": {
        +              "type": "string"
        +            },
        +            "tier": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "2.1": {
        +          "properties": {
        +            "evidence_provided": {
        +              "type": "boolean"
        +            },
        +            "evidence_ref": {
        +              "type": "string"
        +            },
        +            "tier": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "2.4A": {
        +          "properties": {
        +            "evidence_provided": {
        +              "type": "boolean"
        +            },
        +            "evidence_ref": {
        +              "type": "string"
        +            },
        +            "tier": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "5.1": {
        +          "properties": {
        +            "evidence_provided": {
        +              "type": "boolean"
        +            },
        +            "evidence_ref": {
        +              "type": "string"
        +            },
        +            "tier": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "7.2": {
        +          "properties": {
        +            "evidence_provided": {
        +              "type": "boolean"
        +            },
        +            "evidence_ref": {
        +              "type": "string"
        +            },
        +            "tier": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "gap_list": {
        +      "items": {
        +        "properties": {
        +          "control_number": {
        +            "type": "string"
        +          },
        +          "evidence_ref": {
        +            "type": "string"
        +          },
        +          "tier": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "mandatory_coverage_pct": {
        +      "type": "integer"
        +    },
        +    "not_applicable_set": {
        +      "properties": {
        +        "7.2": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "overall_status": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_debt_validation_notice1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "asserted_note": {
        +      "type": "string"
        +    },
        +    "completeness_grade": {
        +      "type": "string"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "element_status": {
        +      "properties": {
        +        "account-number-or-reference": {
        +          "type": "string"
        +        },
        +        "consumer-name": {
        +          "type": "string"
        +        },
        +        "debt-collector-name": {
        +          "type": "string"
        +        },
        +        "itemization-breakdown": {
        +          "type": "string"
        +        },
        +        "itemization-date": {
        +          "type": "string"
        +        },
        +        "itemized-current-amount": {
        +          "type": "string"
        +        },
        +        "model-form-b1-tear-off": {
        +          "type": "string"
        +        },
        +        "original-creditor-name-if-different": {
        +          "type": "string"
        +        },
        +        "statement-of-dispute-rights-30-day": {
        +          "type": "string"
        +        },
        +        "statement-of-right-to-original-creditor-info": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "elements_checked": {
        +      "type": "integer"
        +    },
        +    "gap_count": {
        +      "type": "integer"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "itemization_date_valid": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "response_period": {
        +      "properties": {
        +        "assumed_received_date": {
        +          "type": "string"
        +        },
        +        "dispute_deadline_date": {
        +          "type": "string"
        +        },
        +        "mailing_assumption_days": {
        +          "type": "integer"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "notice_mailed_date": {
        +          "type": "string"
        +        },
        +        "validation_period_days": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_digital_trade_rules1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "amount_check": {
        +      "type": "string"
        +    },
        +    "discrepancies": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "remediation": {
        +            "type": "string"
        +          },
        +          "rule_ref": {
        +            "type": "string"
        +          },
        +          "severity": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "expiry_check": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "presentation_summary": {
        +      "properties": {
        +        "critical_count": {
        +          "type": "integer"
        +        },
        +        "discrepancy_count": {
        +          "type": "integer"
        +        },
        +        "doc_count": {
        +          "type": "integer"
        +        },
        +        "major_count": {
        +          "type": "integer"
        +        },
        +        "rule_set": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_etr_control_evidence1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "chain_summary": {
        +      "properties": {
        +        "final_holder": {
        +          "type": "string"
        +        },
        +        "final_interval_open": {
        +          "type": "boolean"
        +        },
        +        "holder_intervals": {
        +          "items": {
        +            "properties": {
        +              "end_epoch_ms": {
        +                "type": "integer"
        +              },
        +              "holder": {
        +                "type": "string"
        +              },
        +              "start_epoch_ms": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "malformed_event_count": {
        +          "type": "integer"
        +        },
        +        "overlap_event_count": {
        +          "type": "integer"
        +        },
        +        "total_events": {
        +          "type": "integer"
        +        },
        +        "valid_chain_events": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "document_digest": {
        +      "type": "string"
        +    },
        +    "element_checklist": {
        +      "properties": {
        +        "chain_continuity": {
        +          "properties": {
        +            "article": {
        +              "type": "string"
        +            },
        +            "detail": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "exclusive_control": {
        +          "properties": {
        +            "article": {
        +              "type": "string"
        +            },
        +            "detail": {
        +              "type": "string"
        +            },
        +            "overlap_events": {
        +              "type": "array"
        +            },
        +            "result": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "integrity_ref": {
        +          "properties": {
        +            "article": {
        +              "type": "string"
        +            },
        +            "detail": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "singularity": {
        +          "properties": {
        +            "article": {
        +              "type": "string"
        +            },
        +            "detail": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "malformed_events": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_verdict": {
        +      "type": "string"
        +    },
        +    "platform_identity": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_fatca_crs_submission_conformance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "certification_period": {
        +      "type": "string"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "finding_count": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "record_count": {
        +      "type": "integer"
        +    },
        +    "schema_version": {
        +      "type": "string"
        +    },
        +    "submission_id": {
        +      "type": "string"
        +    },
        +    "suppressed_finding_count": {
        +      "type": "integer"
        +    },
        +    "suppressed_rule_codes": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_fido_pqc_conformance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attestation_format": {
        +      "type": "string"
        +    },
        +    "conformant": {
        +      "type": "boolean"
        +    },
        +    "cose_pqc_registry": {
        +      "properties": {
        +        "ML-DSA-44": {
        +          "type": "integer"
        +        },
        +        "ML-DSA-65": {
        +          "type": "integer"
        +        },
        +        "ML-DSA-87": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ctap_pqc_ready": {
        +      "type": "boolean"
        +    },
        +    "ctap_version": {
        +      "type": "string"
        +    },
        +    "gaps": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "hybrid_status": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "supported_pqc_cose_ids": {
        +      "type": "array"
        +    },
        +    "target_cose_id": {
        +      "type": "integer"
        +    },
        +    "target_pqc": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_g20_corridor_cost_gap1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "corridor_pair": {
        +      "properties": {
        +        "receive_country": {
        +          "type": "string"
        +        },
        +        "send_country": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "gap_bps": {
        +      "type": "integer"
        +    },
        +    "gap_pct_display": {
        +      "type": "string"
        +    },
        +    "meets_target": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "observed_cost_bps": {
        +      "type": "integer"
        +    },
        +    "observed_cost_display": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "rpw_methodology": {
        +      "properties": {
        +        "name": {
        +          "type": "string"
        +        },
        +        "url": {
        +          "type": "string"
        +        },
        +        "version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "send_amount_basis": {
        +      "type": "string"
        +    },
        +    "target_any_corridor_bps": {
        +      "type": "integer"
        +    },
        +    "target_any_corridor_display": {
        +      "type": "string"
        +    },
        +    "target_basis": {
        +      "type": "string"
        +    },
        +    "target_global_avg_bps": {
        +      "type": "integer"
        +    },
        +    "target_global_avg_display": {
        +      "type": "string"
        +    },
        +    "target_scope": {
        +      "type": "string"
        +    },
        +    "target_year": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_genius_reserve_disclosure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "applicable_deadline": {
        +      "type": "string"
        +    },
        +    "asset_results": {
        +      "type": "array"
        +    },
        +    "ceo_certified": {
        +      "type": "boolean"
        +    },
        +    "cfo_certified": {
        +      "type": "boolean"
        +    },
        +    "conditional_assets_usd": {
        +      "type": "integer"
        +    },
        +    "coverage_ratio_pct": {
        +      "type": "integer"
        +    },
        +    "custody_disclosed": {
        +      "type": "boolean"
        +    },
        +    "custody_locations": {
        +      "type": "array"
        +    },
        +    "dual_control_satisfied": {
        +      "type": "boolean"
        +    },
        +    "examiner_name": {
        +      "type": "string"
        +    },
        +    "failing_dimensions": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "dim": {
        +            "type": "string"
        +          },
        +          "ref": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "gate_policy": {
        +      "type": "string"
        +    },
        +    "mom_diff": {
        +      "type": "string"
        +    },
        +    "monthly_disclosure_determination": {
        +      "type": "string"
        +    },
        +    "onchain_supply_check": {
        +      "properties": {
        +        "delta": {
        +          "type": "string"
        +        },
        +        "match": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "onchain_supply": {
        +          "type": "string"
        +        },
        +        "provided": {
        +          "type": "boolean"
        +        },
        +        "reported_outstanding_tokens": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "pdf_extraction_note": {
        +      "type": "string"
        +    },
        +    "prohibited_assets_usd": {
        +      "type": "integer"
        +    },
        +    "registered_examiner_named": {
        +      "type": "boolean"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "report_month": {
        +      "type": "string"
        +    },
        +    "reserve_shortfall_usd": {
        +      "type": "integer"
        +    },
        +    "total_liabilities_usd": {
        +      "type": "integer"
        +    },
        +    "total_reserves_usd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_genius_reserve_disclosure_conformance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attestation_date": {
        +      "type": "string"
        +    },
        +    "attestation_present": {
        +      "type": "boolean"
        +    },
        +    "coverage_ratio_pct": {
        +      "type": "string"
        +    },
        +    "days_after_period_end": {
        +      "type": "string"
        +    },
        +    "examiner_name": {
        +      "type": "string"
        +    },
        +    "examiner_registered": {
        +      "type": "boolean"
        +    },
        +    "onchain_supply_check": {
        +      "properties": {
        +        "delta": {
        +          "type": "string"
        +        },
        +        "match": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "onchain_supply": {
        +          "type": "string"
        +        },
        +        "provided": {
        +          "type": "boolean"
        +        },
        +        "reported_outstanding_tokens": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "overall_determination": {
        +      "type": "string"
        +    },
        +    "period_end_date": {
        +      "type": "string"
        +    },
        +    "report_period": {
        +      "type": "string"
        +    },
        +    "requirement_verdicts": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "ref": {
        +            "type": "string"
        +          },
        +          "requirement": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "reserve_shortfall_usd": {
        +      "type": "string"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "statutory_attestation_window_days": {
        +      "type": "integer"
        +    },
        +    "total_liabilities_usd": {
        +      "type": "integer"
        +    },
        +    "total_reserves_usd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_gpai_code_conformance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "base_conformant": {
        +      "type": "boolean"
        +    },
        +    "base_gaps": {
        +      "type": "array"
        +    },
        +    "base_score": {
        +      "type": "integer"
        +    },
        +    "code_of_practice_signed": {
        +      "type": "boolean"
        +    },
        +    "is_gpai_provider": {
        +      "type": "boolean"
        +    },
        +    "is_systemic_risk": {
        +      "type": "boolean"
        +    },
        +    "overall_score": {
        +      "type": "integer"
        +    },
        +    "systemic_gaps": {
        +      "type": "array"
        +    },
        +    "systemic_risk_conformant": {
        +      "type": "boolean"
        +    },
        +    "systemic_score": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_icm_quorum_forgery_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "colluding_share_pct": {
        +      "type": "integer"
        +    },
        +    "colluding_stake_weight": {
        +      "type": "integer"
        +    },
        +    "meets_floor": {
        +      "type": "boolean"
        +    },
        +    "message_class": {
        +      "type": "string"
        +    },
        +    "min_colluding_floor": {
        +      "type": "integer"
        +    },
        +    "min_colluding_validators": {
        +      "type": "integer"
        +    },
        +    "quorum_pct": {
        +      "type": "integer"
        +    },
        +    "quorum_pct_valid": {
        +      "type": "boolean"
        +    },
        +    "quorum_reachable": {
        +      "type": "boolean"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "source_l1_label": {
        +      "type": "string"
        +    },
        +    "stake_hhi": {
        +      "type": "integer"
        +    },
        +    "total_stake_weight": {
        +      "type": "integer"
        +    },
        +    "total_validators": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_ifrs17_risk_adjustment1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "confidence_disclosed": {
        +      "type": "boolean"
        +    },
        +    "confidence_level_pct": {
        +      "type": "integer"
        +    },
        +    "disclosed": {
        +      "type": "boolean"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "loss_component_recognized": {
        +      "type": "boolean"
        +    },
        +    "onerous_contracts_identified": {
        +      "type": "boolean"
        +    },
        +    "onerous_properly_handled": {
        +      "type": "boolean"
        +    },
        +    "ra_amount": {
        +      "type": "integer"
        +    },
        +    "ra_valid": {
        +      "type": "boolean"
        +    },
        +    "technique": {
        +      "type": "string"
        +    },
        +    "technique_ok": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_irrbb_csrbb_scope1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "csrbb_conformant": {
        +      "type": "boolean"
        +    },
        +    "csrbb_included_in_icaap": {
        +      "type": "boolean"
        +    },
        +    "csrbb_methodology_defined": {
        +      "type": "boolean"
        +    },
        +    "gaps": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "in_scope": {
        +      "type": "boolean"
        +    },
        +    "in_scope_amount": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_iso20022_pqc_readiness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "affected_message_types": {
        +      "type": "array"
        +    },
        +    "algorithm_refs": {
        +      "properties": {
        +        "bah_wrapper_bytes": {
        +          "type": "integer"
        +        },
        +        "ml_dsa_sizes": {
        +          "properties": {
        +            "ML-DSA-44": {
        +              "type": "integer"
        +            },
        +            "ML-DSA-65": {
        +              "type": "integer"
        +            },
        +            "ML-DSA-87": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "pqc_algorithm": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "bis_leap_bloat_factor": {
        +      "type": "number"
        +    },
        +    "bis_leap_ref": {
        +      "type": "string"
        +    },
        +    "bloat_factor": {
        +      "type": "number"
        +    },
        +    "current_sig_bytes": {
        +      "type": "integer"
        +    },
        +    "hndl_priority_ref": {
        +      "type": "string"
        +    },
        +    "new_message_size_bytes": {
        +      "type": "integer"
        +    },
        +    "new_sig_bytes": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "readiness_score": {
        +      "type": "integer"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "size_breach": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_lei_relationship_consistency1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "consistent": {
        +      "type": "boolean"
        +    },
        +    "cycle_path": {
        +      "type": "string"
        +    },
        +    "deprecated_exception_codes": {
        +      "type": "array"
        +    },
        +    "duplicate_active_triples": {
        +      "type": "array"
        +    },
        +    "exception_table_source": {
        +      "type": "string"
        +    },
        +    "exception_table_version": {
        +      "type": "string"
        +    },
        +    "invalid_node_leis": {
        +      "type": "array"
        +    },
        +    "invariant_results": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "invariant": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "recognized_exception_codes_current": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "recognized_exception_codes_deprecated": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "record_count": {
        +      "type": "integer"
        +    },
        +    "records_assessed": {
        +      "type": "boolean"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "subject_lei": {
        +      "type": "string"
        +    },
        +    "subject_lei_valid": {
        +      "type": "boolean"
        +    },
        +    "unrecognized_exception_codes": {
        +      "type": "array"
        +    },
        +    "violation_count": {
        +      "type": "integer"
        +    },
        +    "violations": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_license_compatibility1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "child_license": {
        +      "type": "string"
        +    },
        +    "compatible": {
        +      "type": "string"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "parent_license": {
        +      "type": "string"
        +    },
        +    "reason_codes": {
        +      "type": "array"
        +    },
        +    "required_child_license": {
        +      "type": "string"
        +    },
        +    "spdx_satisfies": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_linea_l2_finality_window1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "corridor_cutoff": {
        +      "type": "string"
        +    },
        +    "draft_pinned": {
        +      "type": "boolean"
        +    },
        +    "finality_tier": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reorg_window_risk": {
        +      "type": "string"
        +    },
        +    "safe_to_release": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_mcp_registry_entry1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "entry_valid": {
        +      "type": "boolean"
        +    },
        +    "has_packages": {
        +      "type": "boolean"
        +    },
        +    "has_remotes": {
        +      "type": "boolean"
        +    },
        +    "missing": {
        +      "type": "array"
        +    },
        +    "name_ok": {
        +      "type": "boolean"
        +    },
        +    "schema_ok": {
        +      "type": "boolean"
        +    },
        +    "version_ok": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_mica_reserve_disclosure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "cadence": {
        +      "properties": {
        +        "cadence_days_declared": {
        +          "type": "integer"
        +        },
        +        "disclosure_dates_ordered": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "invalid_disclosure_dates": {
        +          "type": "array"
        +        },
        +        "missed_periods": {
        +          "type": "array"
        +        },
        +        "window_end": {
        +          "type": "string"
        +        },
        +        "window_start": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "composition": {
        +      "properties": {
        +        "class_totals": {
        +          "items": {
        +            "properties": {
        +              "amount": {
        +                "type": "string"
        +              },
        +              "asset_class": {
        +                "type": "string"
        +              },
        +              "limit_pct": {
        +                "type": "string"
        +              },
        +              "pct_of_reserve": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "concentration_breaches": {
        +          "type": "array"
        +        },
        +        "eligible_asset_classes_declared": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "ineligible_components": {
        +          "type": "array"
        +        },
        +        "ineligible_total": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "coverage": {
        +      "properties": {
        +        "circulation_positive": {
        +          "type": "boolean"
        +        },
        +        "coverage_ratio": {
        +          "type": "string"
        +        },
        +        "covered": {
        +          "type": "boolean"
        +        },
        +        "eligible_coverage_ratio": {
        +          "type": "string"
        +        },
        +        "eligible_reserve_total": {
        +          "type": "string"
        +        },
        +        "reserve_empty": {
        +          "type": "boolean"
        +        },
        +        "reserve_total": {
        +          "type": "string"
        +        },
        +        "surplus_or_shortfall": {
        +          "type": "string"
        +        },
        +        "tokens_in_circulation": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "disclosure_ref": {
        +      "type": "string"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "issuer_id": {
        +      "type": "string"
        +    },
        +    "judgment_required": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rounding": {
        +      "properties": {
        +        "decimal_places": {
        +          "type": "integer"
        +        },
        +        "mode": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rules_version": {
        +      "type": "string"
        +    },
        +    "segregation": {
        +      "properties": {
        +        "acceptable_custodian_types_declared": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "meets_declared_minimum": {
        +          "type": "boolean"
        +        },
        +        "min_segregated_pct_applied": {
        +          "type": "string"
        +        },
        +        "min_segregated_pct_source": {
        +          "type": "string"
        +        },
        +        "segregated_amount": {
        +          "type": "string"
        +        },
        +        "segregation_pct": {
        +          "type": "string"
        +        },
        +        "undeclared_custodian_components": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "sign_off": {
        +      "properties": {
        +        "note": {
        +          "type": "string"
        +        },
        +        "surface": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "token_type": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_muni_arbitrage_spending_exception1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "clause_note": {
        +      "type": "string"
        +    },
        +    "de_minimis_cap_minor": {
        +      "type": "integer"
        +    },
        +    "de_minimis_minor": {
        +      "type": "string"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "elected_exception": {
        +      "type": "string"
        +    },
        +    "gross_proceeds_minor": {
        +      "type": "integer"
        +    },
        +    "issue_date": {
        +      "type": "string"
        +    },
        +    "milestones": {
        +      "items": {
        +        "properties": {
        +          "cumulative_spent_minor": {
        +            "type": "integer"
        +          },
        +          "milestone_date": {
        +            "type": "string"
        +          },
        +          "months_after_issue_date": {
        +            "type": "integer"
        +          },
        +          "required_gross_minor": {
        +            "type": "integer"
        +          },
        +          "required_minor": {
        +            "type": "integer"
        +          },
        +          "required_pct": {
        +            "type": "integer"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "overall_status": {
        +      "type": "string"
        +    },
        +    "reasonable_retainage": {
        +      "type": "boolean"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "total_expenditures_minor": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_nis2_art21_measures1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_score": {
        +      "type": "integer"
        +    },
        +    "critical_gaps": {
        +      "type": "array"
        +    },
        +    "measures_summary": {
        +      "items": {
        +        "properties": {
        +          "maturity": {
        +            "type": "integer"
        +          },
        +          "measure_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "overall_grade": {
        +      "type": "string"
        +    },
        +    "remediation_priority": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_official_statement_completeness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "asserted_note": {
        +      "type": "string"
        +    },
        +    "completeness_grade": {
        +      "type": "string"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "continuing_disclosure_undertaking_present": {
        +      "type": "boolean"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "element_status": {
        +      "properties": {
        +        "continuing-disclosure-undertaking": {
        +          "type": "string"
        +        },
        +        "cover-page": {
        +          "type": "string"
        +        },
        +        "description-of-issuer": {
        +          "type": "string"
        +        },
        +        "description-of-securities": {
        +          "type": "string"
        +        },
        +        "financial-statements": {
        +          "type": "string"
        +        },
        +        "litigation-disclosure": {
        +          "type": "string"
        +        },
        +        "risk-factors": {
        +          "type": "string"
        +        },
        +        "sources-and-uses-of-funds": {
        +          "type": "string"
        +        },
        +        "summary-statement": {
        +          "type": "string"
        +        },
        +        "tax-matters-legal-opinion": {
        +          "type": "string"
        +        },
        +        "underwriting": {
        +          "type": "string"
        +        },
        +        "use-of-proceeds": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "elements_checked": {
        +      "type": "integer"
        +    },
        +    "gap_count": {
        +      "type": "integer"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "material_event_categories_checked": {
        +      "type": "integer"
        +    },
        +    "material_event_gaps": {
        +      "type": "array"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_operator_exit_portability1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "categories": {
        +      "items": {
        +        "properties": {
        +          "category": {
        +            "type": "string"
        +          },
        +          "export_cadence": {
        +            "type": "string"
        +          },
        +          "export_exists": {
        +            "type": "string"
        +          },
        +          "format": {
        +            "type": "string"
        +          },
        +          "format_open": {
        +            "type": "string"
        +          },
        +          "last_successful_export": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "category_count": {
        +      "type": "integer"
        +    },
        +    "components": {
        +      "items": {
        +        "properties": {
        +          "controlled_by": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "contractual_operator": {
        +      "type": "string"
        +    },
        +    "declared_component_count": {
        +      "type": "integer"
        +    },
        +    "dependencies": {
        +      "items": {
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "single_supplier": {
        +            "type": "string"
        +          },
        +          "substitutable": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "escrow_description": {
        +      "type": "string"
        +    },
        +    "escrow_exists": {
        +      "type": "string"
        +    },
        +    "exit_readiness_exceptions": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "notice_period_days": {
        +      "type": "integer"
        +    },
        +    "notice_period_declared": {
        +      "type": "boolean"
        +    },
        +    "operator_claim_unsupported": {
        +      "type": "boolean"
        +    },
        +    "operator_control_ratio_declared": {
        +      "type": "string"
        +    },
        +    "operator_controlled_count": {
        +      "type": "integer"
        +    },
        +    "portable": {
        +      "type": "boolean"
        +    },
        +    "proprietary_format_categories": {
        +      "type": "array"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "single_supplier_no_substitute": {
        +      "type": "array"
        +    },
        +    "stranded_categories": {
        +      "type": "array"
        +    },
        +    "stranded_category_count": {
        +      "type": "integer"
        +    },
        +    "supplier_controlled_count": {
        +      "type": "integer"
        +    },
        +    "transition_assistance_declared": {
        +      "type": "boolean"
        +    },
        +    "transition_assistance_terms": {
        +      "type": "string"
        +    },
        +    "undeclared_categories": {
        +      "type": "array"
        +    },
        +    "undeclared_component_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_private_student_loan_disclosures1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "application_stage": {
        +      "properties": {
        +        "element_status": {
        +          "properties": {
        +            "cosigner-rights-disclosure": {
        +              "type": "string"
        +            },
        +            "estimated-total-cost": {
        +              "type": "string"
        +            },
        +            "fees-and-default-charges": {
        +              "type": "string"
        +            },
        +            "interest-rate-or-range": {
        +              "type": "string"
        +            },
        +            "repayment-terms": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "gaps": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "approval_stage": {
        +      "properties": {
        +        "element_status": {
        +          "properties": {
        +            "confirmed-fees": {
        +              "type": "string"
        +            },
        +            "confirmed-interest-rate": {
        +              "type": "string"
        +            },
        +            "confirmed-repayment-terms": {
        +              "type": "string"
        +            },
        +            "rate-lock-period-disclosure": {
        +              "type": "string"
        +            },
        +            "right-to-accept-30-days-disclosure": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "gaps": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "completeness_grade": {
        +      "type": "string"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "elements_checked": {
        +      "type": "integer"
        +    },
        +    "federal_idr_note": {
        +      "type": "string"
        +    },
        +    "federal_idr_out_of_scope": {
        +      "type": "boolean"
        +    },
        +    "final_stage": {
        +      "properties": {
        +        "element_status": {
        +          "properties": {
        +            "final-fees": {
        +              "type": "string"
        +            },
        +            "final-interest-rate": {
        +              "type": "string"
        +            },
        +            "final-repayment-schedule": {
        +              "type": "string"
        +            },
        +            "right-to-cancel-3-day-disclosure": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "gaps": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "gap_count": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "rescission": {
        +      "properties": {
        +        "earliest_permitted_disbursement_date": {
        +          "type": "string"
        +        },
        +        "final_disclosure_date": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "third_business_day": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "self_certification_present": {
        +      "type": "boolean"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_producer_license_reciprocity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_reciprocal": {
        +      "type": "boolean"
        +    },
        +    "coverage_by_target": {
        +      "items": {
        +        "properties": {
        +          "flags": {
        +            "type": "array"
        +          },
        +          "is_non_standard": {
        +            "type": "boolean"
        +          },
        +          "loa_gaps": {
        +            "type": "array"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "reciprocal": {
        +            "type": "boolean"
        +          },
        +          "target_state": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "invalid_loa_codes": {
        +      "type": "array"
        +    },
        +    "loa_codes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "non_standard_states": {
        +      "type": "array"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "resident_state": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "target_state_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_purpose_code_requirement1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "category_purpose_code_provided": {
        +      "type": "boolean"
        +    },
        +    "code_type_required": {
        +      "type": "string"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "jurisdiction_reason": {
        +      "type": "string"
        +    },
        +    "jurisdiction_requires_purpose_code": {
        +      "type": "boolean"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "purpose_code_compliant": {
        +      "type": "boolean"
        +    },
        +    "purpose_code_provided": {
        +      "type": "boolean"
        +    },
        +    "purpose_format_valid": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "required_code_types": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "swiftgo_accepted_category_codes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "swiftgo_amount_ok": {
        +      "type": "boolean"
        +    },
        +    "swiftgo_category_ok": {
        +      "type": "boolean"
        +    },
        +    "swiftgo_eligible": {
        +      "type": "boolean"
        +    },
        +    "swiftgo_max_usd": {
        +      "type": "integer"
        +    },
        +    "swiftgo_notes": {
        +      "type": "array"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_qm_points_and_fees1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "effective_date": {
        +      "type": "string"
        +    },
        +    "fr_citation": {
        +      "type": "string"
        +    },
        +    "headroom": {
        +      "type": "integer"
        +    },
        +    "limit": {
        +      "type": "integer"
        +    },
        +    "limit_fixed": {
        +      "type": "string"
        +    },
        +    "limit_pct": {
        +      "type": "integer"
        +    },
        +    "limit_type": {
        +      "type": "string"
        +    },
        +    "loan_amount": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "pass": {
        +      "type": "boolean"
        +    },
        +    "points_and_fees": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "tier_label": {
        +      "type": "string"
        +    },
        +    "year": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_reg_e_remittance_disclosure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "amount_recipient_disclosed_cents": {
        +      "type": "integer"
        +    },
        +    "amount_recipient_recomputed_cents": {
        +      "type": "integer"
        +    },
        +    "amount_recipient_recomputed_display": {
        +      "type": "string"
        +    },
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "disclosure_consistent": {
        +      "type": "boolean"
        +    },
        +    "discrepancy_amount_cents": {
        +      "type": "integer"
        +    },
        +    "discrepancy_amount_display": {
        +      "type": "string"
        +    },
        +    "exchange_rate_disclosed_display": {
        +      "type": "string"
        +    },
        +    "exchange_rate_disclosed_e6": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "send_amount_cents": {
        +      "type": "integer"
        +    },
        +    "total_fees_disclosed_cents": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_retail_installment_disclosures1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "amortization_provenance": {
        +      "properties": {
        +        "num_payments": {
        +          "type": "integer"
        +        },
        +        "provenance_ok": {
        +          "type": "boolean"
        +        },
        +        "schedule_digest": {
        +          "type": "string"
        +        },
        +        "source_tool_id": {
        +          "type": "string"
        +        },
        +        "total_interest": {
        +          "type": "number"
        +        },
        +        "total_principal": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "amount_financed": {
        +      "type": "integer"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "dealer_participation": {
        +      "properties": {
        +        "dealer_reserve_disclosed": {
        +          "type": "boolean"
        +        },
        +        "declaration_note": {
        +          "type": "string"
        +        },
        +        "disambiguation": {
        +          "type": "string"
        +        },
        +        "markup_pct": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "finance_charge": {
        +      "type": "number"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "tie_outs": {
        +      "items": {
        +        "properties": {
        +          "computed": {
        +            "type": "integer"
        +          },
        +          "diff_cents": {
        +            "type": "integer"
        +          },
        +          "disclosed": {
        +            "type": "integer"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "within_tolerance": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "tolerance_cents": {
        +      "type": "integer"
        +    },
        +    "total_of_payments": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_safeguarding_reconciliation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "citations": {
        +      "properties": {
        +        "discrepancy_treatment": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "external_frequency": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "external_reconciliation": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "internal_frequency": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "internal_reconciliation": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "safeguarding_requirement": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "safeguarding_resource": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "component_count": {
        +      "type": "integer"
        +    },
        +    "components": {
        +      "items": {
        +        "properties": {
        +          "account_ref": {
        +            "type": "string"
        +          },
        +          "amount_display": {
        +            "type": "string"
        +          },
        +          "amount_minor_units": {
        +            "type": "integer"
        +          },
        +          "component_type": {
        +            "type": "string"
        +          },
        +          "counted_toward_resource": {
        +            "type": "boolean"
        +          },
        +          "excluded_amount_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "difference_direction": {
        +      "type": "string"
        +    },
        +    "difference_display": {
        +      "type": "string"
        +    },
        +    "difference_minor_units": {
        +      "type": "integer"
        +    },
        +    "minor_unit_exponent": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reconciliation_type": {
        +      "type": "string"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "ruleset": {
        +      "properties": {
        +        "field_set_version": {
        +          "type": "string"
        +        },
        +        "in_force_from": {
        +          "type": "string"
        +        },
        +        "ruleset_id": {
        +          "type": "string"
        +        },
        +        "ruleset_label": {
        +          "type": "string"
        +        },
        +        "sourced_from": {
        +          "type": "string"
        +        },
        +        "sourced_on": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "safeguarding_requirement_display": {
        +      "type": "string"
        +    },
        +    "safeguarding_requirement_minor_units": {
        +      "type": "integer"
        +    },
        +    "safeguarding_resource_display": {
        +      "type": "string"
        +    },
        +    "safeguarding_resource_minor_units": {
        +      "type": "integer"
        +    },
        +    "subtotals_by_component_type": {
        +      "items": {
        +        "properties": {
        +          "amount_display": {
        +            "type": "string"
        +          },
        +          "amount_minor_units": {
        +            "type": "integer"
        +          },
        +          "component_type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "tolerance_display": {
        +      "type": "string"
        +    },
        +    "tolerance_minor_units": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "within_tolerance": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_sb53_frontier_scope1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compute_flops": {
        +      "type": "string"
        +    },
        +    "flop_threshold": {
        +      "type": "string"
        +    },
        +    "is_frontier_model": {
        +      "type": "boolean"
        +    },
        +    "is_large_frontier_developer": {
        +      "type": "boolean"
        +    },
        +    "large_developer_revenue_threshold_usd": {
        +      "type": "integer"
        +    },
        +    "obligation_set": {
        +      "type": "array"
        +    },
        +    "statute_citation": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_screening_list_coverage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "coverage_grade": {
        +      "type": "string"
        +    },
        +    "coverage_pct": {
        +      "type": "integer"
        +    },
        +    "missing_lists": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "nexus_gaps": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "ofsi_migration_note": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "refresh_adequate": {
        +      "type": "boolean"
        +    },
        +    "refresh_frequency_assessed": {
        +      "type": "string"
        +    },
        +    "required_lists": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "sectoral_lists_screened": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_securitization_risk_retention1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "actual_retention_pct": {
        +      "type": "integer"
        +    },
        +    "breach_reasons": {
        +      "type": "array"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "jurisdiction": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "qrm_exemption_applied": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "required_retention_pct": {
        +      "type": "integer"
        +    },
        +    "retained_amount_musd": {
        +      "type": "integer"
        +    },
        +    "retained_interest_hedged_or_sold": {
        +      "type": "boolean"
        +    },
        +    "retainer_is_sole_purpose_entity": {
        +      "type": "boolean"
        +    },
        +    "retention_method": {
        +      "type": "string"
        +    },
        +    "retention_method_valid": {
        +      "type": "boolean"
        +    },
        +    "total_securitized_exposure_musd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_sod_matrix1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "clean": {
        +      "type": "boolean"
        +    },
        +    "conflict_count": {
        +      "type": "integer"
        +    },
        +    "conflict_rules_evaluated": {
        +      "type": "integer"
        +    },
        +    "conflicts": {
        +      "type": "array"
        +    },
        +    "ruleset_version": {
        +      "type": "string"
        +    },
        +    "users_evaluated": {
        +      "type": "integer"
        +    },
        +    "users_with_conflicts": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_ssi_conformance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "clean_records": {
        +      "type": "integer"
        +    },
        +    "format_errors": {
        +      "type": "integer"
        +    },
        +    "golden_source_coverage_pct": {
        +      "type": "integer"
        +    },
        +    "incomplete_records": {
        +      "type": "integer"
        +    },
        +    "match_rate": {
        +      "type": "integer"
        +    },
        +    "non_golden_source_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "records_flagged": {
        +      "type": "array"
        +    },
        +    "reference": {
        +      "properties": {
        +        "bic_standard": {
        +          "type": "string"
        +        },
        +        "golden_providers": {
        +          "type": "string"
        +        },
        +        "ssi_fail_rate": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "staleness_breaches": {
        +      "type": "integer"
        +    },
        +    "staleness_threshold_days": {
        +      "type": "integer"
        +    },
        +    "total_records": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedchoose_cc_license1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attribution_required": {
        +      "type": "boolean"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "license_id": {
        +      "type": "string"
        +    },
        +    "license_name": {
        +      "type": "string"
        +    },
        +    "license_url": {
        +      "type": "string"
        +    },
        +    "required_elements": {
        +      "type": "array"
        +    },
        +    "source": {
        +      "type": "string"
        +    },
        +    "spdx_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_agentic_ai_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "applicable_obligations": {
        +      "items": {
        +        "properties": {
        +          "article": {
        +            "type": "string"
        +          },
        +          "requirement": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "autonomy_oversight_verdict": {
        +      "type": "string"
        +    },
        +    "dim_scores": {
        +      "properties": {
        +        "autonomy": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "gpai_docs": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "model_type": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "oversight": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "systemic_eval": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "transparency": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "governance_tier": {
        +      "type": "string"
        +    },
        +    "gpai_class": {
        +      "type": "string"
        +    },
        +    "highrisk_interaction": {
        +      "type": "string"
        +    },
        +    "in_force_status": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_grade": {
        +      "type": "string"
        +    },
        +    "overall_score": {
        +      "type": "number"
        +    },
        +    "recommendation": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_ai_system_governance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "deployment_context": {
        +      "type": "string"
        +    },
        +    "eu_ai_act_tier": {
        +      "type": "string"
        +    },
        +    "gpai_obligations": {
        +      "properties": {
        +        "applies": {
        +          "type": "boolean"
        +        },
        +        "systemic_risk": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "iso42001_control_set": {
        +      "type": "string"
        +    },
        +    "nist_rmf_profile": {
        +      "type": "string"
        +    },
        +    "use_case": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_annex3_decisioning_obligations1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_obligations_met": {
        +      "type": "boolean"
        +    },
        +    "annex3_category": {
        +      "type": "string"
        +    },
        +    "art12_logging_required": {
        +      "type": "boolean"
        +    },
        +    "art26_deployer_duties_apply": {
        +      "type": "boolean"
        +    },
        +    "compliance_gaps": {
        +      "type": "array"
        +    },
        +    "db_registration_required": {
        +      "type": "boolean"
        +    },
        +    "do_now": {
        +      "type": "array"
        +    },
        +    "enforcement_dates": {
        +      "properties": {
        +        "digital_omnibus_proposed": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "original": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "enforcement_readiness": {
        +      "type": "string"
        +    },
        +    "extends_note": {
        +      "type": "string"
        +    },
        +    "extends_tool": {
        +      "type": "string"
        +    },
        +    "fria_required": {
        +      "type": "boolean"
        +    },
        +    "is_5b_creditworthiness": {
        +      "type": "boolean"
        +    },
        +    "is_5c_life_health_insurance": {
        +      "type": "boolean"
        +    },
        +    "is_high_risk": {
        +      "type": "boolean"
        +    },
        +    "obligations": {
        +      "items": {
        +        "properties": {
        +          "article": {
        +            "type": "string"
        +          },
        +          "obligation": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "scope_verdict": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_avax_permissioning_controls1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "absent_count": {
        +      "type": "integer"
        +    },
        +    "application_enforced_count": {
        +      "type": "integer"
        +    },
        +    "controls": {
        +      "items": {
        +        "properties": {
        +          "basis": {
        +            "type": "string"
        +          },
        +          "control_id": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "precompile_key": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "controls_evaluated": {
        +      "type": "integer"
        +    },
        +    "gap_register": {
        +      "items": {
        +        "properties": {
        +          "control_id": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "reason": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "judgment_required": {
        +      "type": "array"
        +    },
        +    "judgment_required_count": {
        +      "type": "integer"
        +    },
        +    "protocol_enforced_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_blockchain_quantum_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "address_reuse_pct": {
        +      "type": "integer"
        +    },
        +    "asset_type": {
        +      "type": "string"
        +    },
        +    "bip360_status": {
        +      "type": "string"
        +    },
        +    "exposed_pct": {
        +      "type": "integer"
        +    },
        +    "exposure_thresholds": {
        +      "properties": {
        +        "high": {
        +          "type": "integer"
        +        },
        +        "medium": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "migration_readiness": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "quantum_risk_tier": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "reuse_risk": {
        +      "type": "string"
        +    },
        +    "roadmap_ref": {
        +      "properties": {
        +        "bitcoin": {
        +          "type": "string"
        +        },
        +        "ethereum": {
        +          "type": "string"
        +        },
        +        "xrpl": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "signature_scheme": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_bold_challenge_finality1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "challenge_window_seconds": {
        +      "type": "integer"
        +    },
        +    "claim_verdict": {
        +      "type": "string"
        +    },
        +    "earliest_final_at": {
        +      "type": "integer"
        +    },
        +    "finality_claim": {
        +      "type": "string"
        +    },
        +    "finality_class": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_carf_reportable1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "judgment_required": {
        +      "type": "array"
        +    },
        +    "judgment_required_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "record_count": {
        +      "type": "integer"
        +    },
        +    "record_verdicts": {
        +      "items": {
        +        "properties": {
        +          "entity_type": {
        +            "type": "string"
        +          },
        +          "matched_reportable_residences": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "reason": {
        +            "type": "string"
        +          },
        +          "record_ref": {
        +            "type": "string"
        +          },
        +          "transaction_verdicts": {
        +            "items": {
        +              "properties": {
        +                "reason": {
        +                  "type": "string"
        +                },
        +                "reportable": {
        +                  "type": "string"
        +                },
        +                "transaction_class": {
        +                  "type": "string"
        +                },
        +                "transaction_ref": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "unsatisfied_due_diligence_steps": {
        +            "type": "array"
        +          },
        +          "user_reportability": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "reportable_residence_jurisdictions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reportable_transaction_classes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reporting_jurisdiction": {
        +      "type": "string"
        +    },
        +    "reporting_period": {
        +      "type": "string"
        +    },
        +    "schema_version": {
        +      "type": "string"
        +    },
        +    "suppressed_rule_codes": {
        +      "type": "array"
        +    },
        +    "suppressed_step_count": {
        +      "type": "integer"
        +    },
        +    "transaction_counts_by_class": {
        +      "properties": {
        +        "crypto_to_fiat_exchange": {
        +          "properties": {
        +            "not_reportable": {
        +              "type": "integer"
        +            },
        +            "reportable": {
        +              "type": "integer"
        +            },
        +            "undetermined": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "staking_reward": {
        +          "properties": {
        +            "not_reportable": {
        +              "type": "integer"
        +            },
        +            "reportable": {
        +              "type": "integer"
        +            },
        +            "undetermined": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "unsatisfied_step_count": {
        +      "type": "integer"
        +    },
        +    "user_counts": {
        +      "properties": {
        +        "not_reportable": {
        +          "type": "integer"
        +        },
        +        "reportable": {
        +          "type": "integer"
        +        },
        +        "undetermined": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_dora_ict_incident_and_clock_deadlines1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "criteria_detail": {
        +      "items": {
        +        "properties": {
        +          "article": {
        +            "type": "string"
        +          },
        +          "criterion_id": {
        +            "type": "string"
        +          },
        +          "met": {
        +            "type": "boolean"
        +          },
        +          "value": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "incident_id": {
        +      "type": "string"
        +    },
        +    "major_incident": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "qualifying_criteria": {
        +      "type": "array"
        +    },
        +    "reporting_clock": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_eccn_dual_use1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "classification_basis": {
        +      "type": "string"
        +    },
        +    "controlling_regime": {
        +      "type": "string"
        +    },
        +    "eccn": {
        +      "type": "string"
        +    },
        +    "emerging_tech_note": {
        +      "type": "string"
        +    },
        +    "eu_annex_i_category": {
        +      "type": "string"
        +    },
        +    "key_dates": {
        +      "properties": {
        +        "bis_affiliates_rule": {
        +          "type": "string"
        +        },
        +        "eu_dual_use_annex_update": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "licence_required": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "red_flags": {
        +      "type": "array"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_emir3_active_account_status1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "bucket_counts": {
        +      "properties": {},
        +      "type": "object"
        +    },
        +    "citations": {
        +      "properties": {
        +        "active_account_obligation": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "reporting_window": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "representativeness_test": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "representativeness_threshold": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "subcategory_tables": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "counterparty_ref": {
        +      "type": "string"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "in_scope": {
        +      "properties": {
        +        "eur_pln_ird": {
        +          "type": "boolean"
        +        },
        +        "eur_stir": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "obligations": {
        +      "properties": {
        +        "active_account": {
        +          "properties": {
        +            "reason": {
        +              "type": "string"
        +            },
        +            "verdict": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "reporting_window": {
        +          "properties": {
        +            "applicable_deadline": {
        +              "type": "string"
        +            },
        +            "reason": {
        +              "type": "string"
        +            },
        +            "reference_period_end": {
        +              "type": "string"
        +            },
        +            "reference_period_start": {
        +              "type": "string"
        +            },
        +            "reporting_submission_date": {
        +              "type": "string"
        +            },
        +            "verdict": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "representativeness": {
        +          "properties": {
        +            "notional_clearing_volume_minor_units": {
        +              "type": "string"
        +            },
        +            "reason": {
        +              "type": "string"
        +            },
        +            "subcategory_results": {
        +              "type": "array"
        +            },
        +            "threshold_minor_units": {
        +              "type": "integer"
        +            },
        +            "verdict": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "items": {
        +        "properties": {
        +          "reason": {
        +            "type": "string"
        +          },
        +          "supplied": {
        +            "type": "string"
        +          },
        +          "where": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "subcategory_designations": {
        +      "type": "array"
        +    },
        +    "trades_classified": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_emir3_simm_approval_scope1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "competent_authority_declared": {
        +      "type": "boolean"
        +    },
        +    "counterparty_type": {
        +      "type": "string"
        +    },
        +    "isda_endorsement": {
        +      "type": "boolean"
        +    },
        +    "methodology_verification": {
        +      "type": "string"
        +    },
        +    "model_status": {
        +      "type": "string"
        +    },
        +    "model_type": {
        +      "type": "string"
        +    },
        +    "obligations": {
        +      "items": {
        +        "properties": {
        +          "basis": {
        +            "type": "string"
        +          },
        +          "description": {
        +            "type": "string"
        +          },
        +          "obligation_id": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "subject_to_bilateral_im": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_erc1967_proxy_slot1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "classification_summary": {
        +      "type": "string"
        +    },
        +    "declared_slot": {
        +      "type": "string"
        +    },
        +    "embedded_address": {
        +      "type": "string"
        +    },
        +    "embedded_address_checksummed": {
        +      "type": "string"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "known_eip1967_slots": {
        +      "properties": {
        +        "admin": {
        +          "type": "string"
        +        },
        +        "beacon": {
        +          "type": "string"
        +        },
        +        "implementation": {
        +          "type": "string"
        +        },
        +        "rollback": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "matched_role": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "overall_determination": {
        +      "type": "string"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "storage_value": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_eudr_commodity_scope1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "commodity": {
        +      "type": "string"
        +    },
        +    "dds_filing_required": {
        +      "type": "boolean"
        +    },
        +    "deadline": {
        +      "type": "string"
        +    },
        +    "due_diligence_required": {
        +      "type": "boolean"
        +    },
        +    "entity_role": {
        +      "type": "string"
        +    },
        +    "geo_exemption_eligible": {
        +      "type": "boolean"
        +    },
        +    "hs4_matched": {
        +      "type": "string"
        +    },
        +    "in_scope": {
        +      "type": "boolean"
        +    },
        +    "is_micro": {
        +      "type": "boolean"
        +    },
        +    "is_sme": {
        +      "type": "boolean"
        +    },
        +    "obligations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_ifrs17_measurement_model1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "coverage_period_months": {
        +      "type": "integer"
        +    },
        +    "direct_participating": {
        +      "type": "boolean"
        +    },
        +    "eligible_models": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "is_reinsurance": {
        +      "type": "boolean"
        +    },
        +    "measurement_model": {
        +      "type": "string"
        +    },
        +    "paa_eligible": {
        +      "type": "boolean"
        +    },
        +    "vfa_eligible": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_nis2_entity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annex": {
        +      "type": "string"
        +    },
        +    "annual_turnover_eur": {
        +      "type": "integer"
        +    },
        +    "applicable_penalties": {
        +      "properties": {
        +        "art21_max_eur": {
        +          "type": "integer"
        +        },
        +        "art21_pct_turnover": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "automatic_essential": {
        +      "type": "boolean"
        +    },
        +    "classification_basis": {
        +      "type": "string"
        +    },
        +    "employee_count": {
        +      "type": "integer"
        +    },
        +    "entity_classification": {
        +      "type": "string"
        +    },
        +    "sector_code": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_qm_apr_apor_spread1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "apor_pct": {
        +      "type": "integer"
        +    },
        +    "applicable_threshold_pct": {
        +      "type": "number"
        +    },
        +    "apr_pct": {
        +      "type": "number"
        +    },
        +    "fr_citation": {
        +      "type": "string"
        +    },
        +    "general_qm_pass": {
        +      "type": "boolean"
        +    },
        +    "headroom_pct": {
        +      "type": "number"
        +    },
        +    "hpct_threshold_pct": {
        +      "type": "number"
        +    },
        +    "is_hpct": {
        +      "type": "boolean"
        +    },
        +    "is_manufactured_housing": {
        +      "type": "boolean"
        +    },
        +    "lien_type": {
        +      "type": "string"
        +    },
        +    "loan_amount": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "qm_status": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "spread_pct": {
        +      "type": "number"
        +    },
        +    "threshold_basis": {
        +      "type": "string"
        +    },
        +    "year": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_reward_flow_related_party1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "citations": {
        +      "properties": {
        +        "ifrs_related_party": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "us_gaap_related_party": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "draft_disclosure_note": {
        +      "properties": {
        +        "disclaimer": {
        +          "type": "string"
        +        },
        +        "label": {
        +          "type": "string"
        +        },
        +        "lines": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "flagged_recipient_count": {
        +      "type": "integer"
        +    },
        +    "flagged_recipient_refs": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "flagged_total": {
        +      "type": "integer"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "issuer_ref": {
        +      "type": "string"
        +    },
        +    "issuer_ultimate_parent_ref": {
        +      "type": "string"
        +    },
        +    "materiality_status": {
        +      "type": "string"
        +    },
        +    "materiality_threshold": {
        +      "type": "integer"
        +    },
        +    "period_ref": {
        +      "type": "string"
        +    },
        +    "recipient_count": {
        +      "type": "integer"
        +    },
        +    "recipients": {
        +      "items": {
        +        "properties": {
        +          "classification": {
        +            "type": "string"
        +          },
        +          "entity_ref": {
        +            "type": "string"
        +          },
        +          "recipient_ref": {
        +            "type": "string"
        +          },
        +          "related_party": {
        +            "type": "boolean"
        +          },
        +          "reward_amount": {
        +            "type": "integer"
        +          },
        +          "ultimate_parent_ref": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "ruleset_version": {
        +      "type": "string"
        +    },
        +    "unquantified_related_recipient_count": {
        +      "type": "integer"
        +    },
        +    "unresolved_recipient_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_safeguarding_method1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "audit_exemption_indicator": {
        +      "properties": {
        +        "basis": {
        +          "type": "string"
        +        },
        +        "citation_id": {
        +          "type": "string"
        +        },
        +        "outcome": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "citations": {
        +      "properties": {
        +        "acknowledgement_letters": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "insurance_or_guarantee_conditions": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "insurance_or_guarantee_provider": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mixed_remittances": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "safeguarding_audit": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "segregation_method": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "classification_verdict": {
        +      "type": "string"
        +    },
        +    "coherent_count": {
        +      "type": "integer"
        +    },
        +    "determinations": {
        +      "items": {
        +        "properties": {
        +          "funds_category": {
        +            "type": "string"
        +          },
        +          "incoherence_count": {
        +            "type": "integer"
        +          },
        +          "judgment_required_count": {
        +            "type": "integer"
        +          },
        +          "method_asserted": {
        +            "type": "string"
        +          },
        +          "method_coherence": {
        +            "type": "string"
        +          },
        +          "method_findings": {
        +            "type": "array"
        +          },
        +          "relevant_funds_determination": {
        +            "properties": {
        +              "basis": {
        +                "type": "string"
        +              },
        +              "citation_id": {
        +                "type": "string"
        +              },
        +              "outcome": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "stream_ref": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "incoherent_count": {
        +      "type": "integer"
        +    },
        +    "judgment_stream_count": {
        +      "type": "integer"
        +    },
        +    "minor_unit_exponent": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "open_judgment_count": {
        +      "type": "integer"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "ruleset": {
        +      "properties": {
        +        "field_set_version": {
        +          "type": "string"
        +        },
        +        "in_force_from": {
        +          "type": "string"
        +        },
        +        "ruleset_id": {
        +          "type": "string"
        +        },
        +        "ruleset_label": {
        +          "type": "string"
        +        },
        +        "sourced_from": {
        +          "type": "string"
        +        },
        +        "sourced_on": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "stream_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_sco60_exposure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "base_risk_weight_pct": {
        +      "type": "integer"
        +    },
        +    "classification": {
        +      "type": "string"
        +    },
        +    "gaps": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "group": {
        +      "type": "string"
        +    },
        +    "group2_exposure_pct_tier1": {
        +      "type": "integer"
        +    },
        +    "group2_limit_breached": {
        +      "type": "boolean"
        +    },
        +    "infra_addon_capped": {
        +      "type": "boolean"
        +    },
        +    "infra_addon_pct_applied": {
        +      "type": "integer"
        +    },
        +    "infra_addon_pct_input": {
        +      "type": "integer"
        +    },
        +    "pillar3_precheck_pass": {
        +      "type": "boolean"
        +    },
        +    "risk_weight_applied_pct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_settlement_asset_finality1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "applicable_regime": {
        +      "type": "string"
        +    },
        +    "finality_gaps": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "finality_tier": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "recommendation": {
        +      "type": "string"
        +    },
        +    "settlement_asset_class": {
        +      "type": "string"
        +    },
        +    "singleness_verdict": {
        +      "type": "string"
        +    },
        +    "status_asof": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_settlement_finality1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_ts": {
        +      "type": "integer"
        +    },
        +    "chain_label": {
        +      "type": "string"
        +    },
        +    "claim_verdict": {
        +      "type": "string"
        +    },
        +    "claimed_tier": {
        +      "type": "string"
        +    },
        +    "draft_pinned": {
        +      "type": "boolean"
        +    },
        +    "earliest_final_at": {
        +      "type": "integer"
        +    },
        +    "finality_tier": {
        +      "type": "string"
        +    },
        +    "meets_required_tier": {
        +      "type": "boolean"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reorg_exposure": {
        +      "type": "string"
        +    },
        +    "required_tier": {
        +      "type": "string"
        +    },
        +    "settlement_model": {
        +      "type": "string"
        +    },
        +    "tier_ladder": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "tier_rank": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedclassify_t1_posttrade_timing1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "at_risk_count": {
        +      "type": "integer"
        +    },
        +    "at_risk_margin_seconds": {
        +      "type": "integer"
        +    },
        +    "baseline_cycle": {
        +      "type": "string"
        +    },
        +    "baseline_not_compared_count": {
        +      "type": "integer"
        +    },
        +    "breached_count": {
        +      "type": "integer"
        +    },
        +    "cycle_compared": {
        +      "type": "string"
        +    },
        +    "first_failing_step": {
        +      "type": "string"
        +    },
        +    "first_newly_breaching_step": {
        +      "type": "string"
        +    },
        +    "newly_breaching_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "on_time_count": {
        +      "type": "integer"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "step_count": {
        +      "type": "integer"
        +    },
        +    "steps": {
        +      "items": {
        +        "properties": {
        +          "achieved_at": {
        +            "type": "string"
        +          },
        +          "achieved_epoch_seconds": {
        +            "type": "integer"
        +          },
        +          "achieved_offset_source": {
        +            "type": "string"
        +          },
        +          "baseline_not_compared": {
        +            "type": "boolean"
        +          },
        +          "breaches_under_target_only": {
        +            "type": "boolean"
        +          },
        +          "cutoff_baseline": {
        +            "type": "string"
        +          },
        +          "cutoff_baseline_epoch_seconds": {
        +            "type": "integer"
        +          },
        +          "cutoff_target": {
        +            "type": "string"
        +          },
        +          "cutoff_target_epoch_seconds": {
        +            "type": "integer"
        +          },
        +          "margin_seconds": {
        +            "type": "integer"
        +          },
        +          "margin_seconds_baseline": {
        +            "type": "integer"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "status_baseline": {
        +            "type": "string"
        +          },
        +          "step": {
        +            "type": "string"
        +          },
        +          "synthesised_from": {
        +            "type": "string"
        +          },
        +          "undetermined_reason": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "target_cycle": {
        +      "type": "string"
        +    },
        +    "time_zone_offset_minutes": {
        +      "type": "integer"
        +    },
        +    "trade_ref": {
        +      "type": "string"
        +    },
        +    "trade_timestamp": {
        +      "type": "string"
        +    },
        +    "undetermined_count": {
        +      "type": "integer"
        +    },
        +    "venue_cutoff": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "verdict_reason": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompare_agentic_rail_protocols1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "crosswalk": {
        +      "items": {
        +        "properties": {
        +          "concept": {
        +            "type": "string"
        +          },
        +          "values": {
        +            "properties": {
        +              "acp": {
        +                "type": "string"
        +              },
        +              "ap2": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "protocol_names": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "protocols_compared": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "protocols_detail": {
        +      "items": {
        +        "properties": {
        +          "artifact": {
        +            "type": "string"
        +          },
        +          "audit": {
        +            "type": "string"
        +          },
        +          "backer": {
        +            "type": "string"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "identity": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "rail": {
        +            "type": "string"
        +          },
        +          "scope": {
        +            "type": "string"
        +          },
        +          "signed": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "sub": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "recommendation": {
        +      "properties": {
        +        "also_consider": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "also_names": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "primary_names": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "primary_pick": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "rationale": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "scenario": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompare_basel_2023_vs_20261 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "business_indicator": {
        +      "type": "integer"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "credit_rwa_2023": {
        +      "type": "integer"
        +    },
        +    "credit_rwa_2026": {
        +      "type": "integer"
        +    },
        +    "delta_capital": {
        +      "type": "integer"
        +    },
        +    "delta_capital_pct": {
        +      "type": "number"
        +    },
        +    "delta_rwa": {
        +      "type": "integer"
        +    },
        +    "direction": {
        +      "type": "string"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "op_capital_2023": {
        +      "type": "integer"
        +    },
        +    "op_capital_2026": {
        +      "type": "integer"
        +    },
        +    "op_rwa_2023": {
        +      "type": "integer"
        +    },
        +    "op_rwa_2026": {
        +      "type": "integer"
        +    },
        +    "portfolio_summary": {
        +      "items": {
        +        "properties": {
        +          "amount": {
        +            "type": "integer"
        +          },
        +          "asset_class": {
        +            "type": "string"
        +          },
        +          "rw_2023": {
        +            "type": "number"
        +          },
        +          "rw_2026": {
        +            "type": "number"
        +          },
        +          "rwa_2023": {
        +            "type": "integer"
        +          },
        +          "rwa_2026": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "referenced_tool_ids": {
        +      "properties": {
        +        "erba_2026": {
        +          "type": "string"
        +        },
        +        "oprisk_sma_2026": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rule_status": {
        +      "type": "string"
        +    },
        +    "source": {
        +      "type": "string"
        +    },
        +    "total_capital_2023": {
        +      "type": "integer"
        +    },
        +    "total_capital_2026": {
        +      "type": "integer"
        +    },
        +    "total_rwa_2023": {
        +      "type": "integer"
        +    },
        +    "total_rwa_2026": {
        +      "type": "integer"
        +    },
        +    "unrecognized_asset_class": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompare_corridor_cost1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "corridor": {
        +      "type": "string"
        +    },
        +    "cost_at_200_usd": {
        +      "type": "number"
        +    },
        +    "cost_at_500_usd": {
        +      "type": "number"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "fee_pct": {
        +      "type": "integer"
        +    },
        +    "from_country": {
        +      "type": "string"
        +    },
        +    "fx_margin_pct": {
        +      "type": "number"
        +    },
        +    "meets_sdg_target": {
        +      "type": "boolean"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "rpw_benchmark_pct": {
        +      "type": "number"
        +    },
        +    "rpw_corridor_avg_200": {
        +      "type": "number"
        +    },
        +    "rpw_corridor_avg_500": {
        +      "type": "number"
        +    },
        +    "rpw_service_count": {
        +      "type": "integer"
        +    },
        +    "sdg_target_pct": {
        +      "type": "integer"
        +    },
        +    "send_amount": {
        +      "type": "integer"
        +    },
        +    "service_name": {
        +      "type": "string"
        +    },
        +    "smart_global_avg_pct": {
        +      "type": "number"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "to_country": {
        +      "type": "string"
        +    },
        +    "total_cost_pct": {
        +      "type": "number"
        +    },
        +    "vs_rpw_benchmark": {
        +      "type": "number"
        +    },
        +    "vs_sdg_target": {
        +      "type": "number"
        +    },
        +    "vs_smart_avg": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompare_cross_ccp_pqd_fields1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cross_ccp": {
        +      "type": "boolean"
        +    },
        +    "entity_a": {
        +      "properties": {
        +        "ccp": {
        +          "type": "string"
        +        },
        +        "division": {
        +          "type": "string"
        +        },
        +        "resolved": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "entity_b": {
        +      "properties": {
        +        "ccp": {
        +          "type": "string"
        +        },
        +        "division": {
        +          "type": "string"
        +        },
        +        "resolved": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fields": {
        +      "items": {
        +        "properties": {
        +          "delta": {
        +            "type": "number"
        +          },
        +          "delta_pct": {
        +            "type": "number"
        +          },
        +          "entity_a": {
        +            "properties": {
        +              "available": {
        +                "type": "boolean"
        +              },
        +              "scope": {
        +                "type": "string"
        +              },
        +              "value": {
        +                "type": "number"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "entity_b": {
        +            "properties": {
        +              "available": {
        +                "type": "boolean"
        +              },
        +              "scope": {
        +                "type": "string"
        +              },
        +              "value": {
        +                "type": "number"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "field_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fully_available_field_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "partially_available_field_count": {
        +      "type": "integer"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "source_citations": {
        +      "properties": {
        +        "FICC": {
        +          "properties": {
        +            "publisher": {
        +              "type": "string"
        +            },
        +            "source_period": {
        +              "type": "string"
        +            },
        +            "source_url": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "ICE": {
        +          "properties": {
        +            "publisher": {
        +              "type": "string"
        +            },
        +            "source_period": {
        +              "type": "string"
        +            },
        +            "source_url": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "threshold": {
        +      "type": "string"
        +    },
        +    "unavailable_field_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompare_model_outcome_analysis1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "breach_periods": {
        +      "items": {
        +        "properties": {
        +          "abs_pct_error": {
        +            "type": "integer"
        +          },
        +          "period_label": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "breach_rate_pct": {
        +      "type": "integer"
        +    },
        +    "error_threshold_pct": {
        +      "type": "integer"
        +    },
        +    "max_absolute_percent_error": {
        +      "type": "integer"
        +    },
        +    "max_breach_rate_pct": {
        +      "type": "integer"
        +    },
        +    "mean_absolute_percent_error": {
        +      "type": "integer"
        +    },
        +    "outcome_status": {
        +      "type": "string"
        +    },
        +    "periods": {
        +      "items": {
        +        "properties": {
        +          "abs_pct_error": {
        +            "type": "integer"
        +          },
        +          "actual": {
        +            "type": "integer"
        +          },
        +          "breach": {
        +            "type": "boolean"
        +          },
        +          "error": {
        +            "type": "integer"
        +          },
        +          "period_label": {
        +            "type": "string"
        +          },
        +          "predicted": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_periods": {
        +      "type": "integer"
        +    },
        +    "worst_period": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompare_pension_lump_sum_annuity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annuityPV": {
        +      "type": "number"
        +    },
        +    "breakEvenAge": {
        +      "type": "integer"
        +    },
        +    "breakEvenRate": {
        +      "type": "number"
        +    },
        +    "colaApplied": {
        +      "type": "boolean"
        +    },
        +    "lumpSum": {
        +      "type": "integer"
        +    },
        +    "recommendation": {
        +      "type": "string"
        +    },
        +    "reinvestmentRequiredReturn": {
        +      "type": "number"
        +    },
        +    "survivorOptionCostMonthly": {
        +      "type": "integer"
        +    },
        +    "survivorPct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompare_receivables_finance_economics1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cheapest_instrument": {
        +      "type": "string"
        +    },
        +    "cost_ranking": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "highest_proceeds_instrument": {
        +      "type": "string"
        +    },
        +    "portfolio": {
        +      "properties": {
        +        "currency": {
        +          "type": "string"
        +        },
        +        "face_value": {
        +          "type": "integer"
        +        },
        +        "num_debtors": {
        +          "type": "string"
        +        },
        +        "obligor_quality": {
        +          "type": "string"
        +        },
        +        "tenor_days": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "results": {
        +      "properties": {
        +        "factoring_non_recourse": {
        +          "properties": {
        +            "effective_annual_cost_pct": {
        +              "type": "number"
        +            },
        +            "net_proceeds": {
        +              "type": "integer"
        +            },
        +            "recourse": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "factoring_recourse": {
        +          "properties": {
        +            "effective_annual_cost_pct": {
        +              "type": "number"
        +            },
        +            "net_proceeds": {
        +              "type": "integer"
        +            },
        +            "recourse": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "forfaiting": {
        +          "properties": {
        +            "effective_annual_cost_pct": {
        +              "type": "number"
        +            },
        +            "net_proceeds": {
        +              "type": "integer"
        +            },
        +            "recourse": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "invoice_discounting": {
        +          "properties": {
        +            "effective_annual_cost_pct": {
        +              "type": "number"
        +            },
        +            "net_proceeds": {
        +              "type": "integer"
        +            },
        +            "recourse": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompare_rights_matrix1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "diff": {
        +      "items": {
        +        "properties": {
        +          "key": {
        +            "type": "string"
        +          },
        +          "ref_a": {
        +            "type": "boolean"
        +          },
        +          "ref_b": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "dimensions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "matrix_note": {
        +      "type": "string"
        +    },
        +    "more_permissive_than": {
        +      "type": "string"
        +    },
        +    "ref_a": {
        +      "properties": {
        +        "family": {
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ref_b": {
        +      "properties": {
        +        "family": {
        +          "type": "string"
        +        },
        +        "id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "sources": {
        +      "properties": {
        +        "cbe": {
        +          "type": "string"
        +        },
        +        "cc": {
        +          "type": "string"
        +        },
        +        "pil": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "vector_a": {
        +      "properties": {
        +        "attribution": {
        +          "type": "boolean"
        +        },
        +        "commercial": {
        +          "type": "boolean"
        +        },
        +        "copy": {
        +          "type": "boolean"
        +        },
        +        "display": {
        +          "type": "boolean"
        +        },
        +        "exclusive": {
        +          "type": "boolean"
        +        },
        +        "modify": {
        +          "type": "boolean"
        +        },
        +        "revocable": {
        +          "type": "boolean"
        +        },
        +        "share_alike": {
        +          "type": "boolean"
        +        },
        +        "sublicense": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "vector_b": {
        +      "properties": {
        +        "attribution": {
        +          "type": "boolean"
        +        },
        +        "commercial": {
        +          "type": "boolean"
        +        },
        +        "copy": {
        +          "type": "boolean"
        +        },
        +        "display": {
        +          "type": "boolean"
        +        },
        +        "exclusive": {
        +          "type": "boolean"
        +        },
        +        "modify": {
        +          "type": "boolean"
        +        },
        +        "revocable": {
        +          "type": "boolean"
        +        },
        +        "share_alike": {
        +          "type": "boolean"
        +        },
        +        "sublicense": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompile_rebalance_evidence_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "additions": {
        +      "items": {
        +        "properties": {
        +          "security_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "cited_receipts": {
        +      "items": {
        +        "properties": {
        +          "execution_hash": {
        +            "type": "string"
        +          },
        +          "role": {
        +            "type": "string"
        +          },
        +          "tool_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "index_id": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "rebalance_date": {
        +      "type": "string"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "removals": {
        +      "items": {
        +        "properties": {
        +          "security_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    },
        +    "weight_deltas": {
        +      "items": {
        +        "properties": {
        +          "new_weight": {
        +            "type": "number"
        +          },
        +          "prior_weight": {
        +            "type": "number"
        +          },
        +          "security_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompile_work_mandate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "chain_config": {
        +      "properties": {
        +        "steps": {
        +          "items": {
        +            "properties": {
        +              "gate": {
        +                "properties": {
        +                  "default": {
        +                    "type": "string"
        +                  },
        +                  "input": {
        +                    "type": "string"
        +                  },
        +                  "rules": {
        +                    "items": {
        +                      "properties": {
        +                        "next": {
        +                          "type": "string"
        +                        },
        +                        "op": {
        +                          "type": "string"
        +                        },
        +                        "value": {
        +                          "type": "boolean"
        +                        }
        +                      },
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "tool_id": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompose_eval_attestation_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attestation_determination": {
        +      "type": "string"
        +    },
        +    "claim_strength": {
        +      "type": "string"
        +    },
        +    "eval_format": {
        +      "type": "string"
        +    },
        +    "eval_id": {
        +      "type": "string"
        +    },
        +    "eval_log_hash": {
        +      "type": "string"
        +    },
        +    "mandate_reference": {
        +      "properties": {
        +        "policy_id": {
        +          "type": "string"
        +        },
        +        "work_mandate_hash": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "verify_instructions": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompose_globe_gir1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "fiscal_year": {
        +      "type": "integer"
        +    },
        +    "gir_schema_version": {
        +      "type": "string"
        +    },
        +    "gir_xml_summary": {
        +      "properties": {
        +        "fiscal_year": {
        +          "type": "integer"
        +        },
        +        "jurisdiction_count": {
        +          "type": "integer"
        +        },
        +        "mne_group_name": {
        +          "type": "string"
        +        },
        +        "root_element": {
        +          "type": "string"
        +        },
        +        "schema_version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "jurisdiction_rows": {
        +      "items": {
        +        "properties": {
        +          "allocation_sum_ok": {
        +            "type": "boolean"
        +          },
        +          "composed_topup_tax": {
        +            "type": "integer"
        +          },
        +          "constituent_entities": {
        +            "items": {
        +              "properties": {
        +                "allocated_topup_tax": {
        +                  "type": "integer"
        +                },
        +                "allocation_share": {
        +                  "type": "number"
        +                },
        +                "entity_name": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "deemed_zero_topup": {
        +            "type": "boolean"
        +          },
        +          "jurisdiction_code": {
        +            "type": "string"
        +          },
        +          "jurisdictional_etr": {
        +            "type": "number"
        +          },
        +          "raw_topup_tax": {
        +            "type": "integer"
        +          },
        +          "safe_harbour_status": {
        +            "type": "string"
        +          },
        +          "sbie_amount": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "jurisdictions_not_evaluated": {
        +      "type": "integer"
        +    },
        +    "jurisdictions_with_deemed_zero": {
        +      "type": "integer"
        +    },
        +    "mne_group_name": {
        +      "type": "string"
        +    },
        +    "submittable": {
        +      "type": "boolean"
        +    },
        +    "total_topup_tax": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_15c3_3_reserve1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "credit_items": {
        +      "items": {
        +        "properties": {
        +          "amount_musd": {
        +            "type": "integer"
        +          },
        +          "category": {
        +            "type": "string"
        +          },
        +          "included_musd": {
        +            "type": "integer"
        +          },
        +          "label": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "debit_items": {
        +      "items": {
        +        "properties": {
        +          "aging_days": {
        +            "type": "integer"
        +          },
        +          "amount_musd": {
        +            "type": "integer"
        +          },
        +          "category": {
        +            "type": "string"
        +          },
        +          "exclusion_reason": {
        +            "type": "string"
        +          },
        +          "included_musd": {
        +            "type": "number"
        +          },
        +          "label": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "deposit_sufficient": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "pab_variant": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "reserve_account_balance_musd": {
        +      "type": "integer"
        +    },
        +    "reserve_requirement_musd": {
        +      "type": "number"
        +    },
        +    "rules_version": {
        +      "type": "string"
        +    },
        +    "surplus_shortfall_musd": {
        +      "type": "number"
        +    },
        +    "total_credits_musd": {
        +      "type": "integer"
        +    },
        +    "total_debits_musd": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_aca_affordability_safe_harbor1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "affordability_pct": {
        +      "type": "number"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "harbors": {
        +      "properties": {
        +        "fpl": {
        +          "properties": {
        +            "affordable": {
        +              "type": "boolean"
        +            },
        +            "computed": {
        +              "type": "boolean"
        +            },
        +            "monthly_max_employee_contribution": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "rate_of_pay": {
        +          "properties": {
        +            "affordable": {
        +              "type": "string"
        +            },
        +            "computed": {
        +              "type": "boolean"
        +            },
        +            "monthly_max_employee_contribution": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "w2": {
        +          "properties": {
        +            "affordable": {
        +              "type": "boolean"
        +            },
        +            "computed": {
        +              "type": "boolean"
        +            },
        +            "monthly_max_employee_contribution": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "harbors_satisfied": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "lowest_cost_self_only_monthly_premium": {
        +      "type": "integer"
        +    },
        +    "satisfies_any_harbor": {
        +      "type": "boolean"
        +    },
        +    "tax_year": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_annuity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annuity_factor": {
        +      "type": "number"
        +    },
        +    "due": {
        +      "type": "boolean"
        +    },
        +    "fv": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "nper": {
        +      "type": "integer"
        +    },
        +    "pmt": {
        +      "type": "integer"
        +    },
        +    "pv": {
        +      "type": "number"
        +    },
        +    "rate_pct": {
        +      "type": "number"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "solved_for": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_asset_liability_coverage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "asset_breakdown": {
        +      "items": {
        +        "properties": {
        +          "amount_musd": {
        +            "type": "integer"
        +          },
        +          "asset_class": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "coverage_ratio": {
        +      "type": "number"
        +    },
        +    "formula": {
        +      "type": "string"
        +    },
        +    "liability_breakdown": {
        +      "items": {
        +        "properties": {
        +          "amount_musd": {
        +            "type": "integer"
        +          },
        +          "liability_class": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "type": "string"
        +    },
        +    "surplus_shortfall_musd": {
        +      "type": "integer"
        +    },
        +    "total_assets_musd": {
        +      "type": "integer"
        +    },
        +    "total_liabilities_musd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_basel_haircut_adjusted_exposure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "collateral_adjusted_total": {
        +      "type": "integer"
        +    },
        +    "collateral_items": {
        +      "items": {
        +        "properties": {
        +          "adjusted_value": {
        +            "type": "integer"
        +          },
        +          "asset_class": {
        +            "type": "string"
        +          },
        +          "combined_haircut_pct": {
        +            "type": "integer"
        +          },
        +          "currency": {
        +            "type": "string"
        +          },
        +          "currency_mismatch": {
        +            "type": "boolean"
        +          },
        +          "fx_haircut_scaled_pct": {
        +            "type": "integer"
        +          },
        +          "haircut_pct": {
        +            "type": "integer"
        +          },
        +          "haircut_scaled_pct": {
        +            "type": "integer"
        +          },
        +          "item_id": {
        +            "type": "string"
        +          },
        +          "market_value": {
        +            "type": "integer"
        +          },
        +          "maturity_bucket": {
        +            "type": "string"
        +          },
        +          "override_applied": {
        +            "type": "boolean"
        +          },
        +          "override_reason_code": {
        +            "type": "string"
        +          },
        +          "table_haircut_pct": {
        +            "type": "integer"
        +          },
        +          "unclassified": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "exposure_adjusted": {
        +      "type": "integer"
        +    },
        +    "exposure_amount": {
        +      "type": "integer"
        +    },
        +    "exposure_asset_class": {
        +      "type": "string"
        +    },
        +    "exposure_currency": {
        +      "type": "string"
        +    },
        +    "exposure_haircut_scaled_pct": {
        +      "type": "integer"
        +    },
        +    "haircut_table_version": {
        +      "type": "string"
        +    },
        +    "holding_period_days": {
        +      "type": "integer"
        +    },
        +    "item_count": {
        +      "type": "integer"
        +    },
        +    "net_exposure": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "override_count": {
        +      "type": "integer"
        +    },
        +    "override_missing_reason_count": {
        +      "type": "integer"
        +    },
        +    "time_scale_factor": {
        +      "type": "integer"
        +    },
        +    "unclassified_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_bond_duration1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "coupon_rate_pct": {
        +      "type": "integer"
        +    },
        +    "day_count_convention": {
        +      "type": "string"
        +    },
        +    "face_value": {
        +      "type": "integer"
        +    },
        +    "macaulay_duration_years": {
        +      "type": "number"
        +    },
        +    "modified_duration_years": {
        +      "type": "number"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "num_periods": {
        +      "type": "integer"
        +    },
        +    "periods_per_year": {
        +      "type": "integer"
        +    },
        +    "price": {
        +      "type": "number"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "years_to_maturity": {
        +      "type": "integer"
        +    },
        +    "ytm_pct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_breakeven1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "breakeven_revenue": {
        +      "type": "integer"
        +    },
        +    "breakeven_units": {
        +      "type": "integer"
        +    },
        +    "contribution_margin_ratio": {
        +      "type": "number"
        +    },
        +    "fixed_costs": {
        +      "type": "integer"
        +    },
        +    "margin_of_safety_pct": {
        +      "type": "number"
        +    },
        +    "margin_of_safety_units": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "price_per_unit": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "unit_contribution": {
        +      "type": "integer"
        +    },
        +    "variable_cost_per_unit": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_canton_app_reward_estimate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "app_reward_pool_cc": {
        +      "type": "integer"
        +    },
        +    "app_reward_pool_share": {
        +      "type": "number"
        +    },
        +    "cc_reward_estimate": {
        +      "type": "integer"
        +    },
        +    "confirmed_envelope_bytes": {
        +      "type": "integer"
        +    },
        +    "confirmed_share_of_traffic": {
        +      "type": "number"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "pool_share_source": {
        +      "type": "string"
        +    },
        +    "protocol_version": {
        +      "type": "string"
        +    },
        +    "round_total_envelope_bytes": {
        +      "type": "integer"
        +    },
        +    "round_total_mint_cc": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_canton_traffic_cost1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cc_burned": {
        +      "type": "integer"
        +    },
        +    "cc_usd_price": {
        +      "type": "number"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "effective_rate_usd_per_mb": {
        +      "type": "integer"
        +    },
        +    "envelope_mb": {
        +      "type": "number"
        +    },
        +    "free_period_applies": {
        +      "type": "boolean"
        +    },
        +    "free_period_days": {
        +      "type": "integer"
        +    },
        +    "free_period_source": {
        +      "type": "string"
        +    },
        +    "is_transfer_preapproval": {
        +      "type": "boolean"
        +    },
        +    "preapproval_age_days": {
        +      "type": "integer"
        +    },
        +    "protocol_version": {
        +      "type": "string"
        +    },
        +    "rate_source": {
        +      "type": "string"
        +    },
        +    "rate_usd_per_mb": {
        +      "type": "integer"
        +    },
        +    "usd_traffic_cost": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_cdd_ownership_25pct1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "below_threshold": {
        +      "type": "array"
        +    },
        +    "below_threshold_count": {
        +      "type": "integer"
        +    },
        +    "beneficial_owner_count": {
        +      "type": "integer"
        +    },
        +    "beneficial_owners": {
        +      "items": {
        +        "properties": {
        +          "direct": {
        +            "type": "boolean"
        +          },
        +          "entity_id": {
        +            "type": "string"
        +          },
        +          "indirect_ownership_pct": {
        +            "type": "integer"
        +          },
        +          "natural_person_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "entities_evaluated": {
        +      "type": "integer"
        +    },
        +    "is_beneficial_owner": {
        +      "type": "boolean"
        +    },
        +    "methodology": {
        +      "type": "string"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regime_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "threshold_pct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_cfpb_1071_coverage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_dates": {
        +      "properties": {
        +        "data_collection_start": {
        +          "type": "string"
        +        },
        +        "first_sblar_due": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "covered": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "originations_year1_count": {
        +      "type": "integer"
        +    },
        +    "originations_year2_count": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "required_sblar_fields": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "sblar_records": {
        +      "items": {
        +        "properties": {
        +          "missing_fields": {
        +            "type": "array"
        +          },
        +          "present_fields_count": {
        +            "type": "integer"
        +          },
        +          "record_id": {
        +            "type": "string"
        +          },
        +          "required_fields_count": {
        +            "type": "integer"
        +          },
        +          "valid": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "sblar_summary": {
        +      "properties": {
        +        "invalid_records": {
        +          "type": "integer"
        +        },
        +        "total_records": {
        +          "type": "integer"
        +        },
        +        "valid_records": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "threshold": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_convexity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "convexity": {
        +      "type": "number"
        +    },
        +    "convexity_price_adjustment_pct": {
        +      "type": "string"
        +    },
        +    "coupon_rate_pct": {
        +      "type": "integer"
        +    },
        +    "face_value": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "num_periods": {
        +      "type": "integer"
        +    },
        +    "periods_per_year": {
        +      "type": "integer"
        +    },
        +    "price": {
        +      "type": "number"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "years_to_maturity": {
        +      "type": "integer"
        +    },
        +    "ytm_pct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_counterparty_limit_check1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "breach_list": {
        +      "type": "array"
        +    },
        +    "counterparties": {
        +      "items": {
        +        "properties": {
        +          "approved_limit_musd": {
        +            "type": "integer"
        +          },
        +          "counterparty_id": {
        +            "type": "string"
        +          },
        +          "counterparty_name": {
        +            "type": "string"
        +          },
        +          "current_exposure_musd": {
        +            "type": "integer"
        +          },
        +          "headroom_musd": {
        +            "type": "integer"
        +          },
        +          "limit_type": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "utilization_pct": {
        +            "type": "integer"
        +          },
        +          "warning_threshold_pct": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "warning_list": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_cross_border_fees1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dest_country": {
        +      "type": "string"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "doc_cost": {
        +      "type": "integer"
        +    },
        +    "fx_cost": {
        +      "type": "number"
        +    },
        +    "fx_spread_bps": {
        +      "type": "integer"
        +    },
        +    "invoice_amount": {
        +      "type": "integer"
        +    },
        +    "method_fee": {
        +      "type": "integer"
        +    },
        +    "origin_country": {
        +      "type": "string"
        +    },
        +    "pct_of_invoice": {
        +      "type": "number"
        +    },
        +    "recon_cost": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "total_cost": {
        +      "type": "number"
        +    },
        +    "vat_cost": {
        +      "type": "integer"
        +    },
        +    "vat_rate": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_cyber_incident_notification_clock1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "determination_at": {
        +      "type": "string"
        +    },
        +    "determination_at_parsed": {
        +      "type": "boolean"
        +    },
        +    "determination_evidence_hash": {
        +      "type": "string"
        +    },
        +    "determination_evidence_hash_well_formed": {
        +      "type": "boolean"
        +    },
        +    "determinations": {
        +      "items": {
        +        "properties": {
        +          "applicable": {
        +            "type": "boolean"
        +          },
        +          "completed_late": {
        +            "type": "boolean"
        +          },
        +          "deadline_iso": {
        +            "type": "string"
        +          },
        +          "exception": {
        +            "type": "string"
        +          },
        +          "ha_note": {
        +            "type": "string"
        +          },
        +          "item_state": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "notification_completed_at": {
        +            "type": "string"
        +          },
        +          "obligation_id": {
        +            "type": "string"
        +          },
        +          "regulator": {
        +            "type": "string"
        +          },
        +          "statute_citation": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "evaluated_at": {
        +      "type": "string"
        +    },
        +    "incident_id": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_discount_window_capacity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "capacity_compliant": {
        +      "type": "boolean"
        +    },
        +    "capacity_surplus_shortfall_musd": {
        +      "type": "integer"
        +    },
        +    "collateral_par_value_musd": {
        +      "type": "integer"
        +    },
        +    "coverage_pct": {
        +      "type": "number"
        +    },
        +    "coverage_target_pct": {
        +      "type": "integer"
        +    },
        +    "lendable_value_musd": {
        +      "type": "integer"
        +    },
        +    "margin_table_version": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "runnable_liabilities_musd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_disparity_metrics1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "adverse_impact_ratio": {
        +      "type": "number"
        +    },
        +    "four_fifths_flag": {
        +      "type": "boolean"
        +    },
        +    "four_fifths_result": {
        +      "type": "string"
        +    },
        +    "four_fifths_threshold": {
        +      "type": "number"
        +    },
        +    "group_a": {
        +      "properties": {
        +        "approval_rate": {
        +          "type": "number"
        +        },
        +        "approvals": {
        +          "type": "integer"
        +        },
        +        "label": {
        +          "type": "string"
        +        },
        +        "total": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "group_b": {
        +      "properties": {
        +        "approval_rate": {
        +          "type": "number"
        +        },
        +        "approvals": {
        +          "type": "integer"
        +        },
        +        "label": {
        +          "type": "string"
        +        },
        +        "total": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "n_total": {
        +      "type": "integer"
        +    },
        +    "odds_ratio": {
        +      "type": "number"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "pooled_proportion": {
        +      "type": "number"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "standardized_mean_difference": {
        +      "type": "number"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "two_proportion_z": {
        +      "type": "number"
        +    },
        +    "z_critical_flag_onetail_05": {
        +      "type": "boolean"
        +    },
        +    "z_critical_flag_twotail_05": {
        +      "type": "boolean"
        +    },
        +    "zero_pii_confirmation": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_dora_roi_gleif_preflight_pack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attestation": {
        +      "properties": {
        +        "signed_at": {
        +          "type": "string"
        +        },
        +        "signer_name": {
        +          "type": "string"
        +        },
        +        "signer_title": {
        +          "type": "string"
        +        },
        +        "status": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "counterparties": {
        +      "items": {
        +        "properties": {
        +          "counterparty_id": {
        +            "type": "string"
        +          },
        +          "gleif_snapshot": {
        +            "properties": {
        +              "captured_at": {
        +                "type": "string"
        +              },
        +              "last_update_date": {
        +                "type": "string"
        +              },
        +              "lei_checksum_valid": {
        +                "type": "boolean"
        +              },
        +              "snapshot_captured": {
        +                "type": "boolean"
        +              },
        +              "source_sha256": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "lei": {
        +            "type": "string"
        +          },
        +          "lei_relationship_check": {
        +            "properties": {
        +              "relationship_consistent": {
        +                "type": "boolean"
        +              },
        +              "relationships_assessed": {
        +                "type": "boolean"
        +              },
        +              "violation_count": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "relationship_violation_present": {
        +            "type": "boolean"
        +          },
        +          "snapshot_missing": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "counterparty_count": {
        +      "type": "integer"
        +    },
        +    "dora_roi_artifact_ref": {
        +      "properties": {
        +        "execution_hash": {
        +          "type": "string"
        +        },
        +        "linked": {
        +          "type": "boolean"
        +        },
        +        "tool_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "rollup": {
        +      "properties": {
        +        "all_snapshots_captured": {
        +          "type": "boolean"
        +        },
        +        "any_relationship_violation": {
        +          "type": "boolean"
        +        },
        +        "counterparties_missing_snapshot": {
        +          "type": "array"
        +        },
        +        "counterparties_with_violations": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_dscr1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "basic_dscr": {
        +      "type": "number"
        +    },
        +    "cash_dscr": {
        +      "type": "number"
        +    },
        +    "fccr": {
        +      "type": "number"
        +    },
        +    "fcf_dscr": {
        +      "type": "number"
        +    },
        +    "gross_leverage": {
        +      "type": "number"
        +    },
        +    "icr_ebit_basis": {
        +      "type": "number"
        +    },
        +    "icr_ebitda_basis": {
        +      "type": "integer"
        +    },
        +    "lender_assessment": {
        +      "items": {
        +        "properties": {
        +          "dscr_min": {
        +            "type": "number"
        +          },
        +          "dscr_pass": {
        +            "type": "boolean"
        +          },
        +          "icr_min": {
        +            "type": "integer"
        +          },
        +          "icr_pass": {
        +            "type": "boolean"
        +          },
        +          "lender_category": {
        +            "type": "string"
        +          },
        +          "meets_threshold": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "net_leverage": {
        +      "type": "number"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "total_debt_service_musd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_dti_ratios1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "back_end_dti_pct": {
        +      "type": "integer"
        +    },
        +    "dti_tier": {
        +      "type": "string"
        +    },
        +    "front_end_dti_pct": {
        +      "type": "number"
        +    },
        +    "gross_monthly_income": {
        +      "type": "integer"
        +    },
        +    "housing_payment_pitia": {
        +      "type": "integer"
        +    },
        +    "max_dti_pct": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "other_monthly_debts": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "total_monthly_debt": {
        +      "type": "integer"
        +    },
        +    "underwriting_type": {
        +      "type": "string"
        +    },
        +    "within_max": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_dv011 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "coupon_rate_pct": {
        +      "type": "integer"
        +    },
        +    "dv01": {
        +      "type": "number"
        +    },
        +    "face_value": {
        +      "type": "integer"
        +    },
        +    "method": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "periods_per_year": {
        +      "type": "integer"
        +    },
        +    "price": {
        +      "type": "number"
        +    },
        +    "price_down_shock": {
        +      "type": "number"
        +    },
        +    "price_up_shock": {
        +      "type": "number"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "shock_size_bp": {
        +      "type": "integer"
        +    },
        +    "years_to_maturity": {
        +      "type": "integer"
        +    },
        +    "ytm_pct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_escrow_analysis1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "account_status": {
        +      "type": "string"
        +    },
        +    "cushion_fraction_used": {
        +      "type": "number"
        +    },
        +    "cushion_target": {
        +      "type": "integer"
        +    },
        +    "deficiency_amount": {
        +      "type": "integer"
        +    },
        +    "low_point_balance": {
        +      "type": "integer"
        +    },
        +    "low_point_month": {
        +      "type": "integer"
        +    },
        +    "monthly_deficiency_spread_amount": {
        +      "type": "integer"
        +    },
        +    "monthly_escrow_payment": {
        +      "type": "integer"
        +    },
        +    "monthly_shortage_spread_amount": {
        +      "type": "integer"
        +    },
        +    "new_monthly_escrow_payment": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "shortage_amount": {
        +      "type": "integer"
        +    },
        +    "shortage_spread_required": {
        +      "type": "boolean"
        +    },
        +    "spread_vs_target": {
        +      "type": "integer"
        +    },
        +    "starting_balance": {
        +      "type": "integer"
        +    },
        +    "surplus_amount": {
        +      "type": "integer"
        +    },
        +    "surplus_refund_required": {
        +      "type": "boolean"
        +    },
        +    "total_annual_disbursements": {
        +      "type": "integer"
        +    },
        +    "trial_balances": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_esrp_exposure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "a_applicable": {
        +      "type": "boolean"
        +    },
        +    "a_exposure_annual": {
        +      "type": "integer"
        +    },
        +    "a_monthly_per_employee": {
        +      "type": "number"
        +    },
        +    "b_applicable": {
        +      "type": "boolean"
        +    },
        +    "b_exposure_annual": {
        +      "type": "integer"
        +    },
        +    "b_monthly_per_employee": {
        +      "type": "number"
        +    },
        +    "controlling_exposure_annual": {
        +      "type": "integer"
        +    },
        +    "controlling_penalty": {
        +      "type": "string"
        +    },
        +    "coverage_offer_rate": {
        +      "type": "number"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "offer_rate_threshold": {
        +      "type": "number"
        +    },
        +    "tax_year": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_experience_mod1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "actual_excess_losses": {
        +      "type": "integer"
        +    },
        +    "actual_primary_losses": {
        +      "type": "integer"
        +    },
        +    "actual_total_losses": {
        +      "type": "integer"
        +    },
        +    "ballast_value": {
        +      "type": "integer"
        +    },
        +    "claim_count": {
        +      "type": "integer"
        +    },
        +    "expected_excess_losses": {
        +      "type": "integer"
        +    },
        +    "expected_losses": {
        +      "type": "integer"
        +    },
        +    "expected_primary_losses": {
        +      "type": "integer"
        +    },
        +    "mod": {
        +      "type": "number"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rating_class": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "split_point": {
        +      "type": "integer"
        +    },
        +    "weighting_value": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_fdic_assessment_rate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "assessment_base_musd": {
        +      "type": "integer"
        +    },
        +    "base_rate_bp": {
        +      "type": "integer"
        +    },
        +    "brokered_deposit_adjustment_bp": {
        +      "type": "number"
        +    },
        +    "estimated_quarterly_assessment_musd": {
        +      "type": "number"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "npr_banner": {
        +      "type": "string"
        +    },
        +    "rate_cap_bp": {
        +      "type": "integer"
        +    },
        +    "rate_floor_bp": {
        +      "type": "number"
        +    },
        +    "rate_floor_or_cap_applied": {
        +      "type": "boolean"
        +    },
        +    "rate_schedule_version": {
        +      "type": "string"
        +    },
        +    "total_rate_bp": {
        +      "type": "number"
        +    },
        +    "total_score": {
        +      "type": "integer"
        +    },
        +    "unsecured_debt_adjustment_bp": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_federal_withholding1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "adjusted_annual_wage_amount": {
        +      "type": "integer"
        +    },
        +    "bracket_at_least": {
        +      "type": "integer"
        +    },
        +    "bracket_rate": {
        +      "type": "number"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "federal_withholding_per_period": {
        +      "type": "number"
        +    },
        +    "filing_status": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "pay_frequency": {
        +      "type": "string"
        +    },
        +    "periods_per_year": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "step3_credit_this_period": {
        +      "type": "integer"
        +    },
        +    "step4c_extra_withholding_per_period": {
        +      "type": "integer"
        +    },
        +    "supported_tax_years": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "tax_year": {
        +      "type": "string"
        +    },
        +    "tentative_annual_withholding": {
        +      "type": "integer"
        +    },
        +    "tentative_withholding_this_period": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_fha_mip_eligibility1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annual_mip": {
        +      "properties": {
        +        "annual_amount": {
        +          "type": "integer"
        +        },
        +        "duration": {
        +          "type": "string"
        +        },
        +        "monthly_amount": {
        +          "type": "number"
        +        },
        +        "rate_pct": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "dti": {
        +      "properties": {
        +        "back_dti_ok": {
        +          "type": "boolean"
        +        },
        +        "back_end_actual_pct": {
        +          "type": "integer"
        +        },
        +        "back_end_guideline_pct": {
        +          "type": "integer"
        +        },
        +        "compensating_factors_needed": {
        +          "type": "boolean"
        +        },
        +        "front_dti_ok": {
        +          "type": "boolean"
        +        },
        +        "front_end_actual_pct": {
        +          "type": "integer"
        +        },
        +        "front_end_guideline_pct": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fha_eligible": {
        +      "type": "boolean"
        +    },
        +    "fico_eligible": {
        +      "type": "boolean"
        +    },
        +    "ltv_eligible": {
        +      "type": "boolean"
        +    },
        +    "max_ltv_pct": {
        +      "type": "number"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "ufmip": {
        +      "properties": {
        +        "amount": {
        +          "type": "integer"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "rate_pct": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_flsa_regular_rate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "discretionary_bonus_excluded": {
        +      "type": "integer"
        +    },
        +    "hourly_rate": {
        +      "type": "integer"
        +    },
        +    "hours_worked_week": {
        +      "type": "integer"
        +    },
        +    "nondiscretionary_bonus_amount": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "other_includable_pay": {
        +      "type": "integer"
        +    },
        +    "overtime_hours": {
        +      "type": "integer"
        +    },
        +    "overtime_premium_pay": {
        +      "type": "number"
        +    },
        +    "regular_rate": {
        +      "type": "number"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "straight_time_pay": {
        +      "type": "integer"
        +    },
        +    "total_pay_due": {
        +      "type": "number"
        +    },
        +    "total_remuneration": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_fr2052a_inflow_outflow_classification1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "boundary_table_version": {
        +      "type": "string"
        +    },
        +    "elimination_total_musd": {
        +      "type": "integer"
        +    },
        +    "form_2052a": {
        +      "items": {
        +        "properties": {
        +          "bucket": {
        +            "type": "string"
        +          },
        +          "inflow_musd": {
        +            "type": "integer"
        +          },
        +          "net_musd": {
        +            "type": "integer"
        +          },
        +          "outflow_musd": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "override_count": {
        +      "type": "integer"
        +    },
        +    "override_missing_reason_count": {
        +      "type": "integer"
        +    },
        +    "row_count": {
        +      "type": "integer"
        +    },
        +    "rows": {
        +      "items": {
        +        "properties": {
        +          "amount_musd": {
        +            "type": "integer"
        +          },
        +          "bucket": {
        +            "type": "string"
        +          },
        +          "flow_type": {
        +            "type": "string"
        +          },
        +          "is_intercompany": {
        +            "type": "boolean"
        +          },
        +          "maturity_days": {
        +            "type": "integer"
        +          },
        +          "override_applied": {
        +            "type": "boolean"
        +          },
        +          "override_reason_code": {
        +            "type": "string"
        +          },
        +          "row_id": {
        +            "type": "string"
        +          },
        +          "table_bucket": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_inflow_musd": {
        +      "type": "integer"
        +    },
        +    "total_net_musd": {
        +      "type": "integer"
        +    },
        +    "total_outflow_musd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_fund_expense_ratios1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "components": {
        +      "properties": {
        +        "average_net_assets": {
        +          "type": "string"
        +        },
        +        "gross_expense_components": {
        +          "items": {
        +            "properties": {
        +              "amount": {
        +                "type": "string"
        +              },
        +              "day_count_convention": {
        +                "type": "string"
        +              },
        +              "description": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "gross_expense_total": {
        +          "type": "string"
        +        },
        +        "net_expense_total": {
        +          "type": "string"
        +        },
        +        "waivers_applied": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "fund_id": {
        +      "type": "string"
        +    },
        +    "gross_expense_ratio": {
        +      "type": "string"
        +    },
        +    "net_expense_ratio": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "period_end": {
        +      "type": "string"
        +    },
        +    "period_start": {
        +      "type": "string"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "rounding": {
        +      "properties": {
        +        "decimal_places": {
        +          "type": "integer"
        +        },
        +        "mode": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    },
        +    "total_expense_ratio": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_fx_netting_positions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "currency_count": {
        +      "type": "integer"
        +    },
        +    "estimated_settlement_savings_usd": {
        +      "type": "integer"
        +    },
        +    "gross_volume_usd": {
        +      "type": "integer"
        +    },
        +    "net_volume_usd": {
        +      "type": "integer"
        +    },
        +    "netting_efficiency_pct": {
        +      "type": "number"
        +    },
        +    "positions": {
        +      "items": {
        +        "properties": {
        +          "ccy": {
        +            "type": "string"
        +          },
        +          "net_fcy": {
        +            "type": "integer"
        +          },
        +          "net_usd": {
        +            "type": "integer"
        +          },
        +          "var_approx_usd": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_globe_jurisdictional_etr1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "adjusted_covered_taxes": {
        +      "type": "integer"
        +    },
        +    "declared_elections": {
        +      "properties": {
        +        "aggregate_deferred_tax_adjustment": {
        +          "type": "boolean"
        +        },
        +        "de_minimis_election": {
        +          "type": "boolean"
        +        },
        +        "stock_based_comp_election": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "entities": {
        +      "items": {
        +        "properties": {
        +          "covered_taxes": {
        +            "type": "integer"
        +          },
        +          "entity_name": {
        +            "type": "string"
        +          },
        +          "net_income_or_loss": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "entity_count": {
        +      "type": "integer"
        +    },
        +    "etr": {
        +      "type": "number"
        +    },
        +    "jurisdiction_name": {
        +      "type": "string"
        +    },
        +    "jurisdictional_globe_income": {
        +      "type": "integer"
        +    },
        +    "minimum_rate": {
        +      "type": "number"
        +    },
        +    "net_globe_income_or_loss": {
        +      "type": "integer"
        +    },
        +    "no_etr_computed": {
        +      "type": "boolean"
        +    },
        +    "top_up_tax_amount": {
        +      "type": "integer"
        +    },
        +    "top_up_tax_percentage": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_globe_sbie_topup1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "excess_profit": {
        +      "type": "integer"
        +    },
        +    "globe_income": {
        +      "type": "integer"
        +    },
        +    "jurisdictional_top_up": {
        +      "type": "integer"
        +    },
        +    "payroll_component": {
        +      "type": "integer"
        +    },
        +    "payroll_rate": {
        +      "type": "number"
        +    },
        +    "qdmtt_over_collection": {
        +      "type": "boolean"
        +    },
        +    "qdmtt_paid": {
        +      "type": "integer"
        +    },
        +    "rate_row_found": {
        +      "type": "boolean"
        +    },
        +    "sbie": {
        +      "type": "integer"
        +    },
        +    "tangible_asset_component": {
        +      "type": "integer"
        +    },
        +    "tangible_asset_rate": {
        +      "type": "number"
        +    },
        +    "target_year": {
        +      "type": "integer"
        +    },
        +    "top_up_tax": {
        +      "type": "integer"
        +    },
        +    "top_up_tax_percentage": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_globe_topup_tax1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregate_etr": {
        +      "type": "number"
        +    },
        +    "central_record_sbs": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "fy": {
        +      "type": "integer"
        +    },
        +    "globe_min_rate": {
        +      "type": "number"
        +    },
        +    "jurisdictions": {
        +      "items": {
        +        "properties": {
        +          "assets": {
        +            "type": "integer"
        +          },
        +          "below_min_etr": {
        +            "type": "boolean"
        +          },
        +          "etr": {
        +            "type": "number"
        +          },
        +          "iir_collected": {
        +            "type": "integer"
        +          },
        +          "income": {
        +            "type": "integer"
        +          },
        +          "income_net_sbie": {
        +            "type": "number"
        +          },
        +          "jur": {
        +            "type": "string"
        +          },
        +          "payroll": {
        +            "type": "integer"
        +          },
        +          "qdmtt_collected": {
        +            "type": "number"
        +          },
        +          "qdmtt_enacted": {
        +            "type": "boolean"
        +          },
        +          "qdmtt_rate": {
        +            "type": "number"
        +          },
        +          "sbie": {
        +            "type": "number"
        +          },
        +          "sbie_payroll_rate": {
        +            "type": "number"
        +          },
        +          "taxes": {
        +            "type": "integer"
        +          },
        +          "top_up_amount": {
        +            "type": "number"
        +          },
        +          "top_up_rate": {
        +            "type": "number"
        +          },
        +          "utpr_collected": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "low_etr_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "parent_hq": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "sbs_election": {
        +      "type": "boolean"
        +    },
        +    "total_iir_collected": {
        +      "type": "number"
        +    },
        +    "total_income": {
        +      "type": "integer"
        +    },
        +    "total_qdmtt_collected": {
        +      "type": "number"
        +    },
        +    "total_taxes": {
        +      "type": "integer"
        +    },
        +    "total_top_up_tax": {
        +      "type": "number"
        +    },
        +    "total_utpr_collected": {
        +      "type": "integer"
        +    },
        +    "us_exempt": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_gross_to_net1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "additional_medicare_tax": {
        +      "type": "integer"
        +    },
        +    "additional_medicare_threshold": {
        +      "type": "integer"
        +    },
        +    "additional_medicare_wages_this_period": {
        +      "type": "integer"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "federal_withholding_per_period": {
        +      "type": "integer"
        +    },
        +    "fica_tax_total": {
        +      "type": "number"
        +    },
        +    "fica_wages_this_period": {
        +      "type": "integer"
        +    },
        +    "medicare_tax": {
        +      "type": "number"
        +    },
        +    "net_pay": {
        +      "type": "number"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "post_tax_other_deductions": {
        +      "type": "integer"
        +    },
        +    "pretax_reduces_fica_and_fit": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "social_security_tax": {
        +      "type": "integer"
        +    },
        +    "ss_taxable_wages_this_period": {
        +      "type": "integer"
        +    },
        +    "ss_wage_base": {
        +      "type": "integer"
        +    },
        +    "supported_tax_years": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "tax_year": {
        +      "type": "string"
        +    },
        +    "ytd_fica_wages_after_period": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_hmda_rate_spread1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "apor_pct": {
        +      "type": "number"
        +    },
        +    "apor_source_note": {
        +      "type": "string"
        +    },
        +    "apr_pct": {
        +      "type": "integer"
        +    },
        +    "hmda_report_code": {
        +      "type": "string"
        +    },
        +    "is_reportable": {
        +      "type": "boolean"
        +    },
        +    "lien_type": {
        +      "type": "string"
        +    },
        +    "lock_date": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "product_type": {
        +      "type": "string"
        +    },
        +    "rate_spread_pct": {
        +      "type": "number"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "reportability_threshold_pct": {
        +      "type": "number"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_identity_proofing_assurance_level1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "achieved_level": {
        +      "type": "string"
        +    },
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "criteria_evaluated": {
        +      "type": "integer"
        +    },
        +    "criteria_met": {
        +      "type": "integer"
        +    },
        +    "criteria_shortfall_count": {
        +      "type": "integer"
        +    },
        +    "criteria_undecidable_count": {
        +      "type": "integer"
        +    },
        +    "declared_target_level": {
        +      "type": "string"
        +    },
        +    "evidence_item_count": {
        +      "type": "integer"
        +    },
        +    "framework_id": {
        +      "type": "string"
        +    },
        +    "framework_version": {
        +      "type": "string"
        +    },
        +    "levels_defined": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "shortfall": {
        +      "type": "array"
        +    },
        +    "target_level_found": {
        +      "type": "boolean"
        +    },
        +    "target_met": {
        +      "type": "boolean"
        +    },
        +    "undecidable": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_index_weights1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "constituents_ref": {
        +      "properties": {
        +        "execution_hash": {
        +          "type": "string"
        +        },
        +        "tool_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "index_id": {
        +      "type": "string"
        +    },
        +    "methodology_notes": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    },
        +    "weight_sum_check": {
        +      "type": "integer"
        +    },
        +    "weight_sum_within_tolerance": {
        +      "type": "boolean"
        +    },
        +    "weighting_methodology": {
        +      "type": "string"
        +    },
        +    "weights": {
        +      "items": {
        +        "properties": {
        +          "security_id": {
        +            "type": "string"
        +          },
        +          "weight": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_intraday_liquidity_monitoring1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "available_intraday_sources": {
        +      "items": {
        +        "properties": {
        +          "amount_musd": {
        +            "type": "integer"
        +          },
        +          "source_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "available_sources_total_musd": {
        +      "type": "integer"
        +    },
        +    "coverage_ratio": {
        +      "type": "number"
        +    },
        +    "cumulative_position_path": {
        +      "items": {
        +        "properties": {
        +          "amount_musd": {
        +            "type": "integer"
        +          },
        +          "cumulative_position_musd": {
        +            "type": "integer"
        +          },
        +          "flow_type": {
        +            "type": "string"
        +          },
        +          "time_hhmm": {
        +            "type": "string"
        +          },
        +          "tx_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "daily_max_usage_musd": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "obligations_summary": {
        +      "properties": {
        +        "obligations_met": {
        +          "type": "integer"
        +        },
        +        "obligations_missed": {
        +          "type": "integer"
        +        },
        +        "total_obligations": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "start_of_day_available_musd": {
        +      "type": "integer"
        +    },
        +    "time_specific_obligations": {
        +      "items": {
        +        "properties": {
        +          "amount_musd": {
        +            "type": "integer"
        +          },
        +          "due_time_hhmm": {
        +            "type": "string"
        +          },
        +          "met_on_time": {
        +            "type": "boolean"
        +          },
        +          "obligation_id": {
        +            "type": "string"
        +          },
        +          "settled": {
        +            "type": "boolean"
        +          },
        +          "settled_time_hhmm": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_payments_musd": {
        +      "type": "integer"
        +    },
        +    "total_receipts_musd": {
        +      "type": "integer"
        +    },
        +    "usage_covered": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_irr1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "bracket_hi_pct": {
        +      "type": "integer"
        +    },
        +    "bracket_lo_pct": {
        +      "type": "number"
        +    },
        +    "converged": {
        +      "type": "boolean"
        +    },
        +    "irr_pct": {
        +      "type": "number"
        +    },
        +    "iterations": {
        +      "type": "integer"
        +    },
        +    "method": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "num_cash_flows": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "tolerance": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_large_exposures_limit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "breach_list": {
        +      "type": "array"
        +    },
        +    "caller_is_gsib": {
        +      "type": "boolean"
        +    },
        +    "counterparties": {
        +      "items": {
        +        "properties": {
        +          "connected_group_id": {
        +            "type": "string"
        +          },
        +          "counterparty_id": {
        +            "type": "string"
        +          },
        +          "counterparty_name": {
        +            "type": "string"
        +          },
        +          "is_gsib": {
        +            "type": "boolean"
        +          },
        +          "net_exposure_total_musd": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "groups": {
        +      "items": {
        +        "properties": {
        +          "applicable_limit_musd": {
        +            "type": "integer"
        +          },
        +          "applicable_limit_pct": {
        +            "type": "integer"
        +          },
        +          "breached": {
        +            "type": "boolean"
        +          },
        +          "exposure_pct_of_tier1": {
        +            "type": "integer"
        +          },
        +          "group_id": {
        +            "type": "string"
        +          },
        +          "gsib_to_gsib": {
        +            "type": "boolean"
        +          },
        +          "is_connected_group": {
        +            "type": "boolean"
        +          },
        +          "member_counterparty_ids": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "net_exposure_total_musd": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "tier1_capital_musd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_lcm_rate_derivation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "complement_loss_cost": {
        +      "type": "integer"
        +    },
        +    "credibility_weighted_loss_cost": {
        +      "type": "integer"
        +    },
        +    "credibility_z": {
        +      "type": "integer"
        +    },
        +    "current_rate": {
        +      "type": "string"
        +    },
        +    "denominator_valid": {
        +      "type": "boolean"
        +    },
        +    "fixed_expense_pct": {
        +      "type": "number"
        +    },
        +    "indicated_rate": {
        +      "type": "number"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "lae_pct": {
        +      "type": "number"
        +    },
        +    "lcm": {
        +      "type": "number"
        +    },
        +    "lcm_denominator": {
        +      "type": "number"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "profit_pct": {
        +      "type": "number"
        +    },
        +    "proprietary_data_notice": {
        +      "type": "string"
        +    },
        +    "pure_loss_cost": {
        +      "type": "integer"
        +    },
        +    "pure_loss_cost_loaded": {
        +      "type": "number"
        +    },
        +    "rate_change_direction": {
        +      "type": "string"
        +    },
        +    "rate_change_pct": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_loading": {
        +      "type": "number"
        +    },
        +    "variable_exp_pct": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_lcr_nsfr_leverage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "lcr": {
        +      "properties": {
        +        "gross_inflows_musd": {
        +          "type": "integer"
        +        },
        +        "gross_outflows_musd": {
        +          "type": "integer"
        +        },
        +        "hqla_total_musd": {
        +          "type": "integer"
        +        },
        +        "inflow_cap_musd": {
        +          "type": "integer"
        +        },
        +        "lcr_compliant": {
        +          "type": "boolean"
        +        },
        +        "lcr_pct": {
        +          "type": "integer"
        +        },
        +        "lcr_surplus_shortfall_musd": {
        +          "type": "integer"
        +        },
        +        "net_cash_outflows_musd": {
        +          "type": "integer"
        +        },
        +        "net_inflows_musd": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "leverage": {
        +      "properties": {
        +        "gsib_leverage_buffer_pct": {
        +          "type": "integer"
        +        },
        +        "leverage_ratio_compliant": {
        +          "type": "boolean"
        +        },
        +        "leverage_ratio_pct": {
        +          "type": "number"
        +        },
        +        "min_leverage_ratio_pct": {
        +          "type": "integer"
        +        },
        +        "tier1_capital_musd": {
        +          "type": "integer"
        +        },
        +        "total_exposure_musd": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "nsfr": {
        +      "properties": {
        +        "nsfr_compliant": {
        +          "type": "boolean"
        +        },
        +        "nsfr_pct": {
        +          "type": "number"
        +        },
        +        "total_asf_musd": {
        +          "type": "integer"
        +        },
        +        "total_rsf_musd": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_llpa_stack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "base_llpa": {
        +      "type": "integer"
        +    },
        +    "components": {
        +      "items": {
        +        "properties": {
        +          "label": {
        +            "type": "string"
        +          },
        +          "value": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "feature_llpa": {
        +      "type": "integer"
        +    },
        +    "fico_band": {
        +      "type": "string"
        +    },
        +    "fthb_eligible": {
        +      "type": "boolean"
        +    },
        +    "fthb_waiver": {
        +      "type": "integer"
        +    },
        +    "ltv_band": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_llpa_pct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_ltv_ratios1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "appraised_value": {
        +      "type": "integer"
        +    },
        +    "cltv_pct": {
        +      "type": "integer"
        +    },
        +    "first_lien_amount": {
        +      "type": "integer"
        +    },
        +    "hcltv_pct": {
        +      "type": "integer"
        +    },
        +    "heloc_credit_limit": {
        +      "type": "integer"
        +    },
        +    "ltv_pct": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "sales_price": {
        +      "type": "integer"
        +    },
        +    "subordinate_lien_amount": {
        +      "type": "integer"
        +    },
        +    "transaction_type": {
        +      "type": "string"
        +    },
        +    "value_used": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_mla_mapr1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "amount_advanced": {
        +      "type": "integer"
        +    },
        +    "amount_financed_mapr": {
        +      "type": "integer"
        +    },
        +    "application_fee_carve_out_applied": {
        +      "type": "boolean"
        +    },
        +    "application_fee_carve_out_predicates": {
        +      "properties": {
        +        "application_fee_once_in_rolling_12_months": {
        +          "type": "boolean"
        +        },
        +        "creditor_is_fcu_or_idi": {
        +          "type": "boolean"
        +        },
        +        "is_short_term_small_amount_loan": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "approaching_cap_threshold_basis": {
        +      "type": "string"
        +    },
        +    "approaching_cap_threshold_pct": {
        +      "type": "integer"
        +    },
        +    "bona_fide_exclusion_available": {
        +      "type": "boolean"
        +    },
        +    "bona_fide_fee_claimed_total": {
        +      "type": "integer"
        +    },
        +    "bracketed": {
        +      "type": "boolean"
        +    },
        +    "charge_breakdown": {
        +      "items": {
        +        "properties": {
        +          "amount": {
        +            "type": "integer"
        +          },
        +          "citation": {
        +            "type": "string"
        +          },
        +          "field": {
        +            "type": "string"
        +          },
        +          "included": {
        +            "type": "boolean"
        +          },
        +          "treatment": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "converged": {
        +      "type": "boolean"
        +    },
        +    "credit_class": {
        +      "type": "string"
        +    },
        +    "exceeds_cap": {
        +      "type": "boolean"
        +    },
        +    "finance_charge_in_schedule": {
        +      "type": "number"
        +    },
        +    "in_scope": {
        +      "type": "boolean"
        +    },
        +    "iterations": {
        +      "type": "integer"
        +    },
        +    "mapr_cap_pct": {
        +      "type": "integer"
        +    },
        +    "mapr_determined": {
        +      "type": "boolean"
        +    },
        +    "mapr_pct": {
        +      "type": "number"
        +    },
        +    "max_payment_count": {
        +      "type": "integer"
        +    },
        +    "method_basis": {
        +      "type": "string"
        +    },
        +    "payment_amount": {
        +      "type": "number"
        +    },
        +    "payment_count": {
        +      "type": "integer"
        +    },
        +    "payment_count_exceeds_limit": {
        +      "type": "boolean"
        +    },
        +    "payment_structure": {
        +      "type": "string"
        +    },
        +    "payment_total": {
        +      "type": "number"
        +    },
        +    "periodic_rate": {
        +      "type": "number"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "prepaid_includable_charges": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "term_days": {
        +      "type": "integer"
        +    },
        +    "total_excluded_charges": {
        +      "type": "integer"
        +    },
        +    "total_includable_charges": {
        +      "type": "number"
        +    },
        +    "unit_periods_per_year": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_mlr_rebate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "adjusted_earned_premium": {
        +      "type": "integer"
        +    },
        +    "adjusted_incurred_claims": {
        +      "type": "integer"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "credibility_adjustment_pct_points": {
        +      "type": "integer"
        +    },
        +    "credibility_tier": {
        +      "type": "string"
        +    },
        +    "current_year_adjusted_mlr_pct": {
        +      "type": "number"
        +    },
        +    "de_minimis": {
        +      "type": "boolean"
        +    },
        +    "market": {
        +      "type": "string"
        +    },
        +    "member_life_years": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "raw_mlr_pct": {
        +      "type": "number"
        +    },
        +    "rebate_amount": {
        +      "type": "integer"
        +    },
        +    "rebate_owed": {
        +      "type": "boolean"
        +    },
        +    "rebate_pct_points": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "reporting_year": {
        +      "type": "integer"
        +    },
        +    "three_yr_average_mlr_pct": {
        +      "type": "number"
        +    },
        +    "threshold_pct": {
        +      "type": "integer"
        +    },
        +    "years_included_in_average": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_multilateral_netting1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "anchor_surface": {
        +      "type": "string"
        +    },
        +    "base_currency": {
        +      "type": "string"
        +    },
        +    "entity_count": {
        +      "type": "integer"
        +    },
        +    "entity_net_positions": {
        +      "items": {
        +        "properties": {
        +          "currency": {
        +            "type": "string"
        +          },
        +          "entity_id": {
        +            "type": "string"
        +          },
        +          "entity_name": {
        +            "type": "string"
        +          },
        +          "net_amount": {
        +            "type": "integer"
        +          },
        +          "role": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "gross_count": {
        +      "type": "integer"
        +    },
        +    "gross_volume": {
        +      "type": "integer"
        +    },
        +    "net_count": {
        +      "type": "integer"
        +    },
        +    "net_volume": {
        +      "type": "integer"
        +    },
        +    "netting_efficiency_pct": {
        +      "type": "number"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "settlement_legs": {
        +      "items": {
        +        "properties": {
        +          "amount": {
        +            "type": "integer"
        +          },
        +          "currency": {
        +            "type": "string"
        +          },
        +          "from_entity": {
        +            "type": "string"
        +          },
        +          "to_entity": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "wire_count_savings": {
        +      "type": "integer"
        +    },
        +    "wire_count_savings_pct": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_note_h_margin_debit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "broker_dealer_ref": {
        +      "type": "string"
        +    },
        +    "citations": {
        +      "properties": {
        +        "note_h_b1": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "note_h_b2i": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "note_h_b2ii": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "note_h_b2iii_iv": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "note_h_b2v": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "note_h_b3": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "treasury_clearing_compliance_dates": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "clearing_agency_name": {
        +      "type": "string"
        +    },
        +    "commission_notice_dated": {
        +      "type": "string"
        +    },
        +    "computation_date_label": {
        +      "type": "string"
        +    },
        +    "conditions": {
        +      "items": {
        +        "properties": {
        +          "citation_key": {
        +            "type": "string"
        +          },
        +          "key": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "satisfied": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "debit_display": {
        +      "type": "string"
        +    },
        +    "debit_minor_units": {
        +      "type": "integer"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "indeterminate_reason": {
        +      "type": "string"
        +    },
        +    "margin_on_deposit_display": {
        +      "type": "string"
        +    },
        +    "margin_on_deposit_minor_units": {
        +      "type": "integer"
        +    },
        +    "margin_required_display": {
        +      "type": "string"
        +    },
        +    "margin_required_minor_units": {
        +      "type": "integer"
        +    },
        +    "margin_source": {
        +      "type": "string"
        +    },
        +    "minor_unit_exponent": {
        +      "type": "integer"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_npv1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "day_count_convention": {
        +      "type": "string"
        +    },
        +    "discount_rate_pct": {
        +      "type": "integer"
        +    },
        +    "mode": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "npv": {
        +      "type": "number"
        +    },
        +    "num_cash_flows": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "total_undiscounted": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_oprisk_sma_20261 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "average_annual_loss": {
        +      "type": "integer"
        +    },
        +    "bucket": {
        +      "type": "integer"
        +    },
        +    "business_indicator": {
        +      "type": "integer"
        +    },
        +    "business_indicator_component": {
        +      "type": "integer"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "fc_avg": {
        +      "type": "integer"
        +    },
        +    "ildc_avg": {
        +      "type": "integer"
        +    },
        +    "internal_loss_multiplier": {
        +      "type": "integer"
        +    },
        +    "loss_component": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "operational_risk_capital": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "rule_status": {
        +      "type": "string"
        +    },
        +    "rwa": {
        +      "type": "integer"
        +    },
        +    "sc_avg": {
        +      "type": "integer"
        +    },
        +    "use_us_ilm_neutralization": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_options_greeks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "d1": {
        +      "type": "number"
        +    },
        +    "d2": {
        +      "type": "number"
        +    },
        +    "delta": {
        +      "type": "number"
        +    },
        +    "delta_risk_band": {
        +      "type": "string"
        +    },
        +    "gamma": {
        +      "type": "number"
        +    },
        +    "price": {
        +      "type": "number"
        +    },
        +    "rho_per_pct": {
        +      "type": "number"
        +    },
        +    "theta_per_day": {
        +      "type": "number"
        +    },
        +    "type": {
        +      "type": "string"
        +    },
        +    "vega_per_pct": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_parametric_trigger_payout1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "anchor_surface": {
        +      "type": "string"
        +    },
        +    "coverage_amount": {
        +      "type": "integer"
        +    },
        +    "index_value": {
        +      "type": "integer"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "parametric_limit": {
        +      "type": "integer"
        +    },
        +    "payout_amount": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "threshold_used": {
        +      "type": "integer"
        +    },
        +    "tier_matched_index": {
        +      "type": "string"
        +    },
        +    "trigger_fraction": {
        +      "type": "integer"
        +    },
        +    "trigger_hit": {
        +      "type": "boolean"
        +    },
        +    "trigger_receipt": {
        +      "properties": {
        +        "coverage_amount": {
        +          "type": "integer"
        +        },
        +        "index_value": {
        +          "type": "integer"
        +        },
        +        "max_index_used": {
        +          "type": "string"
        +        },
        +        "parametric_limit": {
        +          "type": "integer"
        +        },
        +        "payout_amount": {
        +          "type": "integer"
        +        },
        +        "threshold_used": {
        +          "type": "integer"
        +        },
        +        "tier_matched_index": {
        +          "type": "string"
        +        },
        +        "trigger_fraction": {
        +          "type": "integer"
        +        },
        +        "trigger_hit": {
        +          "type": "boolean"
        +        },
        +        "trigger_type": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "trigger_type_used": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_perp_funding1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annualized_basis_pct": {
        +      "type": "integer"
        +    },
        +    "asset": {
        +      "type": "string"
        +    },
        +    "basis_pct": {
        +      "type": "integer"
        +    },
        +    "basis_perp_price": {
        +      "type": "integer"
        +    },
        +    "basis_spot_price": {
        +      "type": "integer"
        +    },
        +    "basis_usd": {
        +      "type": "integer"
        +    },
        +    "cadence_hours": {
        +      "type": "integer"
        +    },
        +    "compound_annualized_rate_pct": {
        +      "type": "number"
        +    },
        +    "cross_venue_arb": {
        +      "type": "string"
        +    },
        +    "delta_neutral_carry": {
        +      "type": "string"
        +    },
        +    "funding_rate_pct_per_period": {
        +      "type": "number"
        +    },
        +    "hl_funding_cap_pct_per_hour": {
        +      "type": "integer"
        +    },
        +    "hl_typical_rate_note": {
        +      "type": "string"
        +    },
        +    "hourly_rate_pct": {
        +      "type": "number"
        +    },
        +    "not_financial_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "simple_annualized_rate_pct": {
        +      "type": "number"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "venue": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_portfolio_var1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "conf_level": {
        +      "type": "number"
        +    },
        +    "es_dollar_mm": {
        +      "type": "number"
        +    },
        +    "hist_var_pct": {
        +      "type": "number"
        +    },
        +    "holding_period": {
        +      "type": "integer"
        +    },
        +    "mc_es_pct": {
        +      "type": "number"
        +    },
        +    "mc_var_pct": {
        +      "type": "number"
        +    },
        +    "n_paths": {
        +      "type": "integer"
        +    },
        +    "param_es_pct": {
        +      "type": "number"
        +    },
        +    "param_var_pct": {
        +      "type": "number"
        +    },
        +    "portfolio_vol_hp": {
        +      "type": "number"
        +    },
        +    "var_dollar_mm": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_pqc_deadline_ladder1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "note": {
        +      "type": "string"
        +    },
        +    "policy_deadlines_used": {
        +      "properties": {
        +        "cnsa_exclusive_deadline": {
        +          "properties": {
        +            "date": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "fips_140_2_historical_date": {
        +          "properties": {
        +            "date": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "key_establishment_deadline": {
        +          "properties": {
        +            "date": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "new_deployment_signing_deadline": {
        +          "properties": {
        +            "date": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "signature_deadline": {
        +          "properties": {
        +            "date": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "reference_date": {
        +      "type": "string"
        +    },
        +    "rows": {
        +      "items": {
        +        "properties": {
        +          "applicable_deadline": {
        +            "type": "string"
        +          },
        +          "asset_type": {
        +            "type": "string"
        +          },
        +          "days_remaining": {
        +            "type": "integer"
        +          },
        +          "deployment_date": {
        +            "type": "string"
        +          },
        +          "earliest_binding_constraint": {
        +            "type": "string"
        +          },
        +          "fips_140_2_certified": {
        +            "type": "boolean"
        +          },
        +          "fips_140_2_historical_exposure": {
        +            "type": "boolean"
        +          },
        +          "flags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "row_id": {
        +            "type": "string"
        +          },
        +          "system_class": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "summary": {
        +      "properties": {
        +        "fips_exposure_count": {
        +          "type": "integer"
        +        },
        +        "imminent_count": {
        +          "type": "integer"
        +        },
        +        "invalid_row_count": {
        +          "type": "integer"
        +        },
        +        "past_due_count": {
        +          "type": "integer"
        +        },
        +        "row_count": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_pt_yt_yield1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "days_to_maturity": {
        +      "type": "integer"
        +    },
        +    "invariant_holds": {
        +      "type": "boolean"
        +    },
        +    "investment_usd": {
        +      "type": "integer"
        +    },
        +    "not_financial_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "pt_discount_pct": {
        +      "type": "integer"
        +    },
        +    "pt_implied_fixed_yield_pct": {
        +      "type": "number"
        +    },
        +    "pt_price": {
        +      "type": "number"
        +    },
        +    "pt_profit_at_maturity_usd": {
        +      "type": "number"
        +    },
        +    "pt_return_to_maturity_pct": {
        +      "type": "number"
        +    },
        +    "pt_simple_apr_pct": {
        +      "type": "number"
        +    },
        +    "pt_units_bought": {
        +      "type": "number"
        +    },
        +    "pt_yt_sum": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "underlying_apy_pct": {
        +      "type": "integer"
        +    },
        +    "years_to_maturity": {
        +      "type": "number"
        +    },
        +    "yt_break_even_apy_pct": {
        +      "type": "number"
        +    },
        +    "yt_leverage": {
        +      "type": "number"
        +    },
        +    "yt_levered_apy_pct": {
        +      "type": "number"
        +    },
        +    "yt_margin_of_safety_pct": {
        +      "type": "number"
        +    },
        +    "yt_net_pnl_if_underlying_stable_usd": {
        +      "type": "number"
        +    },
        +    "yt_payout_if_underlying_stable_usd": {
        +      "type": "number"
        +    },
        +    "yt_price": {
        +      "type": "number"
        +    },
        +    "yt_profitable_at_current": {
        +      "type": "boolean"
        +    },
        +    "yt_units_bought": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_raroc_loan_price1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "break_even_gap_bps": {
        +      "type": "integer"
        +    },
        +    "break_even_spread_bps": {
        +      "type": "integer"
        +    },
        +    "capital_approach": {
        +      "type": "string"
        +    },
        +    "drawn_musd": {
        +      "type": "number"
        +    },
        +    "economic_capital_musd": {
        +      "type": "number"
        +    },
        +    "expected_loss_musd": {
        +      "type": "number"
        +    },
        +    "funding_cost_musd": {
        +      "type": "number"
        +    },
        +    "gross_revenue_musd": {
        +      "type": "number"
        +    },
        +    "hurdle_rate_pct": {
        +      "type": "integer"
        +    },
        +    "net_income_after_tax_musd": {
        +      "type": "number"
        +    },
        +    "net_income_before_tax_musd": {
        +      "type": "number"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "operating_cost_musd": {
        +      "type": "number"
        +    },
        +    "raroc_pct": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "undrawn_musd": {
        +      "type": "number"
        +    },
        +    "value_creating": {
        +      "type": "boolean"
        +    },
        +    "value_spread_pct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_rbc_action_level1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "action_level_code": {
        +      "type": "string"
        +    },
        +    "action_level_description": {
        +      "type": "string"
        +    },
        +    "action_level_label": {
        +      "type": "string"
        +    },
        +    "action_levels_reference": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "description": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "rbc_pct_acl": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "authorized_control_level": {
        +      "type": "integer"
        +    },
        +    "headroom_to_next_level_pct": {
        +      "type": "integer"
        +    },
        +    "insurer_type": {
        +      "type": "string"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "prior_year_rbc_ratio": {
        +      "type": "string"
        +    },
        +    "rbc_ratio_pct": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "threshold_breached_pct": {
        +      "type": "string"
        +    },
        +    "total_adjusted_capital": {
        +      "type": "integer"
        +    },
        +    "trend_test_applicable": {
        +      "type": "boolean"
        +    },
        +    "trend_test_triggered": {
        +      "type": "boolean"
        +    },
        +    "two_year_rbc_ratio": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_rbc_action_level_private1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "action_level_code": {
        +      "type": "string"
        +    },
        +    "action_level_description": {
        +      "type": "string"
        +    },
        +    "action_level_label": {
        +      "type": "string"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_reg_z_appendix_j_apr1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "advance_total": {
        +      "type": "integer"
        +    },
        +    "apr_pct": {
        +      "type": "number"
        +    },
        +    "bracketed": {
        +      "type": "boolean"
        +    },
        +    "converged": {
        +      "type": "boolean"
        +    },
        +    "finance_charge": {
        +      "type": "number"
        +    },
        +    "iterations": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "num_payments": {
        +      "type": "integer"
        +    },
        +    "payment_total": {
        +      "type": "number"
        +    },
        +    "periodic_rate": {
        +      "type": "number"
        +    },
        +    "periods_per_year": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_remittance_disclosure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "accounting_identity_delta": {
        +      "type": "integer"
        +    },
        +    "accounting_identity_ok": {
        +      "type": "boolean"
        +    },
        +    "amount_received_dest": {
        +      "type": "number"
        +    },
        +    "anchor_surface": {
        +      "type": "string"
        +    },
        +    "destination_country": {
        +      "type": "string"
        +    },
        +    "destination_currency": {
        +      "type": "string"
        +    },
        +    "disclosure_type": {
        +      "type": "string"
        +    },
        +    "estimate_permissible": {
        +      "type": "boolean"
        +    },
        +    "exchange_rate_disclosed": {
        +      "type": "number"
        +    },
        +    "fees": {
        +      "properties": {
        +        "provider_fee": {
        +          "type": "number"
        +        },
        +        "taxes": {
        +          "type": "integer"
        +        },
        +        "third_party_fees": {
        +          "type": "integer"
        +        },
        +        "total_fees_usd": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "required_fields_complete": {
        +      "type": "boolean"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_to_sender_usd": {
        +      "type": "integer"
        +    },
        +    "transfer_amount_usd": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_rwa_erba_20261 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregate_rwa": {
        +      "type": "integer"
        +    },
        +    "average_risk_weight": {
        +      "type": "number"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "exposure_count": {
        +      "type": "integer"
        +    },
        +    "per_exposure": {
        +      "items": {
        +        "properties": {
        +          "basis": {
        +            "type": "string"
        +          },
        +          "category": {
        +            "type": "string"
        +          },
        +          "credit_equivalent_amount": {
        +            "type": "integer"
        +          },
        +          "effective_risk_weight": {
        +            "type": "integer"
        +          },
        +          "exposure_amount": {
        +            "type": "integer"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "risk_weight": {
        +            "type": "integer"
        +          },
        +          "rwa": {
        +            "type": "integer"
        +          },
        +          "sme_support_factor": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "rule_set": {
        +      "type": "string"
        +    },
        +    "rule_set_label": {
        +      "type": "string"
        +    },
        +    "rule_status": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "total_exposure_amount": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_rwa_scenarios1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "airb_floored_bn": {
        +      "type": "number"
        +    },
        +    "airb_pcts": {
        +      "items": {
        +        "type": "number"
        +      },
        +      "type": "array"
        +    },
        +    "airb_rwa_bn": {
        +      "type": "number"
        +    },
        +    "firb_floored_bn": {
        +      "type": "number"
        +    },
        +    "firb_pcts": {
        +      "items": {
        +        "type": "number"
        +      },
        +      "type": "array"
        +    },
        +    "firb_rwa_bn": {
        +      "type": "number"
        +    },
        +    "floor_binding": {
        +      "properties": {
        +        "airb": {
        +          "type": "boolean"
        +        },
        +        "firb": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "floor_rwa_bn": {
        +      "type": "number"
        +    },
        +    "percentile_labels": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "sacr_pcts": {
        +      "items": {
        +        "type": "number"
        +      },
        +      "type": "array"
        +    },
        +    "sacr_rwa_bn": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_scra_rate_cap1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "capped_rate_pct": {
        +      "type": "integer"
        +    },
        +    "covered_months": {
        +      "type": "integer"
        +    },
        +    "effective_rate_pct": {
        +      "type": "integer"
        +    },
        +    "exceeds_cap": {
        +      "type": "boolean"
        +    },
        +    "excess_forgiven": {
        +      "type": "boolean"
        +    },
        +    "excess_rate_pct": {
        +      "type": "integer"
        +    },
        +    "interest_delta_forgiven": {
        +      "type": "integer"
        +    },
        +    "is_pre_service_obligation": {
        +      "type": "boolean"
        +    },
        +    "loan_balance": {
        +      "type": "integer"
        +    },
        +    "original_rate_pct": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "retroactive_credit": {
        +      "type": "integer"
        +    },
        +    "scra_note": {
        +      "type": "string"
        +    },
        +    "servicemember_notified": {
        +      "type": "boolean"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_interest_at_cap": {
        +      "type": "integer"
        +    },
        +    "total_interest_at_original_rate": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_settlement_efficiency_kpi1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "benchmark": {
        +      "properties": {
        +        "esma_settlement_rate_pct": {
        +          "type": "number"
        +        },
        +        "source": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "buyin_triggered_count": {
        +      "type": "integer"
        +    },
        +    "fail_duration_distribution": {
        +      "properties": {
        +        "1_day": {
        +          "type": "integer"
        +        },
        +        "2_to_5_days": {
        +          "type": "integer"
        +        },
        +        "6_to_10_days": {
        +          "type": "integer"
        +        },
        +        "over_10_days": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fail_rate": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "on_time_allocation_rate": {
        +      "type": "integer"
        +    },
        +    "period_label": {
        +      "type": "string"
        +    },
        +    "settlement_grade": {
        +      "type": "string"
        +    },
        +    "settlement_rate": {
        +      "type": "integer"
        +    },
        +    "ssi_golden_coverage_pct": {
        +      "type": "integer"
        +    },
        +    "total_instructions": {
        +      "type": "integer"
        +    },
        +    "total_penalty_cost": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_stock_token_collateral_haircut1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "adjusted_collateral_value": {
        +      "type": "integer"
        +    },
        +    "base_haircut": {
        +      "type": "number"
        +    },
        +    "extra_haircut": {
        +      "type": "integer"
        +    },
        +    "feed_stale": {
        +      "type": "boolean"
        +    },
        +    "final_haircut": {
        +      "type": "number"
        +    },
        +    "liquidation_risk": {
        +      "type": "string"
        +    },
        +    "sequencer_down_grace_expired": {
        +      "type": "boolean"
        +    },
        +    "sequencer_down_within_grace": {
        +      "type": "boolean"
        +    },
        +    "underlying_halted": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_stress_test_scenarios1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "max_drawdown": {
        +      "type": "number"
        +    },
        +    "normal_var_pct": {
        +      "type": "number"
        +    },
        +    "recovery_days_estimate": {
        +      "type": "integer"
        +    },
        +    "scenario_details": {
        +      "items": {
        +        "properties": {
        +          "creditLoss": {
        +            "type": "number"
        +          },
        +          "creditShock": {
        +            "type": "number"
        +          },
        +          "equityLoss": {
        +            "type": "number"
        +          },
        +          "equityShock": {
        +            "type": "number"
        +          },
        +          "horizon": {
        +            "type": "integer"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "loss_cap_applied": {
        +            "type": "boolean"
        +          },
        +          "rateLoss": {
        +            "type": "integer"
        +          },
        +          "rateShock": {
        +            "type": "number"
        +          },
        +          "recoveryDays": {
        +            "type": "integer"
        +          },
        +          "stressedES": {
        +            "type": "number"
        +          },
        +          "stressedVar": {
        +            "type": "number"
        +          },
        +          "totalLoss": {
        +            "type": "number"
        +          },
        +          "uncapped_loss": {
        +            "type": "number"
        +          },
        +          "volMult": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "scenario_losses": {
        +      "properties": {
        +        "covid_2020": {
        +          "type": "number"
        +        },
        +        "dotcom_bust": {
        +          "type": "number"
        +        },
        +        "gfc_2008": {
        +          "type": "number"
        +        },
        +        "lehman_week": {
        +          "type": "number"
        +        },
        +        "rate_shock": {
        +          "type": "number"
        +        },
        +        "svb_2023": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "stress_multiplier": {
        +      "type": "number"
        +    },
        +    "stressed_es_pct": {
        +      "type": "number"
        +    },
        +    "stressed_var_pct": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "type": "array"
        +    },
        +    "worst_case_loss": {
        +      "type": "number"
        +    },
        +    "worst_case_scenario": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_tempo_mainnet_fee_capacity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "block_time_seconds": {
        +      "type": "integer"
        +    },
        +    "line_items": {
        +      "items": {
        +        "properties": {
        +          "count": {
        +            "type": "string"
        +          },
        +          "fee_microusd_per_tx": {
        +            "type": "string"
        +          },
        +          "gas_used": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "max_tx_per_block_payment_lane": {
        +            "type": "string"
        +          },
        +          "total_fee_microusd": {
        +            "type": "string"
        +          },
        +          "tps_headroom": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "protocol_parameters_used": {
        +      "properties": {
        +        "base_fee_attodollars_per_gas": {
        +          "type": "string"
        +        },
        +        "block_gas_limit": {
        +          "type": "string"
        +        },
        +        "general_lane_gas_limit": {
        +          "type": "string"
        +        },
        +        "payment_lane_gas_limit": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "protocol_version": {
        +      "type": "string"
        +    },
        +    "summary": {
        +      "properties": {
        +        "line_item_count": {
        +          "type": "integer"
        +        },
        +        "total_fee_microusd": {
        +          "type": "string"
        +        },
        +        "total_gas_used": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_trid_tolerance_cure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cure_amount": {
        +      "type": "integer"
        +    },
        +    "cure_required": {
        +      "type": "boolean"
        +    },
        +    "fee_analysis": {
        +      "items": {
        +        "properties": {
        +          "bucket": {
        +            "type": "string"
        +          },
        +          "cd_amount": {
        +            "type": "integer"
        +          },
        +          "increase": {
        +            "type": "integer"
        +          },
        +          "le_amount": {
        +            "type": "integer"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "violation": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "ten_pct_bucket_increase": {
        +      "type": "integer"
        +    },
        +    "ten_pct_bucket_le_sum": {
        +      "type": "integer"
        +    },
        +    "ten_pct_excess": {
        +      "type": "integer"
        +    },
        +    "ten_pct_threshold": {
        +      "type": "integer"
        +    },
        +    "ten_pct_violation": {
        +      "type": "boolean"
        +    },
        +    "total_violations": {
        +      "type": "integer"
        +    },
        +    "violations": {
        +      "type": "array"
        +    },
        +    "zero_tolerance_violations": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_va_funding_fee_residual1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dti": {
        +      "properties": {
        +        "actual_pct": {
        +          "type": "integer"
        +        },
        +        "benchmark_pct": {
        +          "type": "integer"
        +        },
        +        "ok": {
        +          "type": "boolean"
        +        },
        +        "residual_review_triggered": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "funding_fee": {
        +      "properties": {
        +        "amount": {
        +          "type": "integer"
        +        },
        +        "basis": {
        +          "type": "string"
        +        },
        +        "exempt": {
        +          "type": "boolean"
        +        },
        +        "financed_loan_amount": {
        +          "type": "integer"
        +        },
        +        "rate_pct": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "residual_income": {
        +      "properties": {
        +        "actual_monthly": {
        +          "type": "integer"
        +        },
        +        "family_size": {
        +          "type": "integer"
        +        },
        +        "margin": {
        +          "type": "integer"
        +        },
        +        "meets_requirement": {
        +          "type": "boolean"
        +        },
        +        "region": {
        +          "type": "string"
        +        },
        +        "required_monthly": {
        +          "type": "integer"
        +        },
        +        "state_code": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "table_source_funding_fee": {
        +      "type": "string"
        +    },
        +    "table_source_residual": {
        +      "type": "string"
        +    },
        +    "table_version_funding_fee": {
        +      "type": "string"
        +    },
        +    "table_version_residual": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_var_backtest_traffic_light1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "exception_count": {
        +      "type": "integer"
        +    },
        +    "exception_indices": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": "array"
        +    },
        +    "full_window": {
        +      "type": "boolean"
        +    },
        +    "multiplier": {
        +      "type": "integer"
        +    },
        +    "rule_status": {
        +      "type": "string"
        +    },
        +    "source": {
        +      "type": "string"
        +    },
        +    "truncated_to_250": {
        +      "type": "boolean"
        +    },
        +    "window_days": {
        +      "type": "integer"
        +    },
        +    "zone": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcompute_xirr1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "anchor_date": {
        +      "type": "string"
        +    },
        +    "bracket_hi_pct": {
        +      "type": "integer"
        +    },
        +    "bracket_lo_pct": {
        +      "type": "number"
        +    },
        +    "converged": {
        +      "type": "boolean"
        +    },
        +    "day_count_convention": {
        +      "type": "string"
        +    },
        +    "iterations": {
        +      "type": "integer"
        +    },
        +    "method": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "num_cash_flows": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "tolerance": {
        +      "type": "number"
        +    },
        +    "xirr_pct": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedconvert_markdown_document1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "digest_basis": {
        +      "type": "string"
        +    },
        +    "html": {
        +      "type": "string"
        +    },
        +    "html_sha256": {
        +      "type": "string"
        +    },
        +    "input_sha256": {
        +      "type": "string"
        +    },
        +    "plain_text": {
        +      "type": "string"
        +    },
        +    "plain_text_sha256": {
        +      "type": "string"
        +    },
        +    "stats": {
        +      "properties": {
        +        "code_blocks": {
        +          "type": "integer"
        +        },
        +        "headings": {
        +          "type": "integer"
        +        },
        +        "links": {
        +          "type": "integer"
        +        },
        +        "tables": {
        +          "type": "integer"
        +        },
        +        "words": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedconvert_tabular_data1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "column_count": {
        +      "type": "integer"
        +    },
        +    "columns": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "converted": {
        +      "type": "string"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "input_sha256": {
        +      "type": "string"
        +    },
        +    "output_sha256": {
        +      "type": "string"
        +    },
        +    "row_count": {
        +      "type": "integer"
        +    },
        +    "source_format": {
        +      "type": "string"
        +    },
        +    "target_format": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedconvert_tempo_fee_amm1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "conversion_ok": {
        +      "type": "boolean"
        +    },
        +    "fee_token": {
        +      "type": "string"
        +    },
        +    "lp_fee_amount": {
        +      "type": "string"
        +    },
        +    "max_pool_utilization_bps": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "pool_utilization_bps": {
        +      "type": "integer"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "validator_token": {
        +      "type": "string"
        +    },
        +    "validator_token_out": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddecode_mpp_session1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cost_per_call": {
        +      "type": "number"
        +    },
        +    "did_valid": {
        +      "type": "boolean"
        +    },
        +    "max_vouchers": {
        +      "type": "integer"
        +    },
        +    "rail": {
        +      "type": "string"
        +    },
        +    "risk": {
        +      "properties": {
        +        "level": {
        +          "type": "string"
        +        },
        +        "reasons": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "spend_cap": {
        +      "type": "integer"
        +    },
        +    "stablecoin": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedderive_beacon_fair_sample1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "algorithm_id": {
        +      "type": "string"
        +    },
        +    "beacon_randomness": {
        +      "type": "string"
        +    },
        +    "beacon_round": {
        +      "type": "string"
        +    },
        +    "beacon_source": {
        +      "type": "string"
        +    },
        +    "derivation_transcript": {
        +      "items": {
        +        "properties": {
        +          "accepted": {
        +            "type": "boolean"
        +          },
        +          "candidate_index": {
        +            "type": "integer"
        +          },
        +          "draw": {
        +            "type": "integer"
        +          },
        +          "hmac_hex": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "draws_used": {
        +      "type": "integer"
        +    },
        +    "item_count": {
        +      "type": "integer"
        +    },
        +    "item_manifest_hash": {
        +      "type": "string"
        +    },
        +    "sample_size": {
        +      "type": "integer"
        +    },
        +    "seed_hex": {
        +      "type": "string"
        +    },
        +    "selected_indices": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedderive_parametric_index_from_receipts1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregation": {
        +      "type": "string"
        +    },
        +    "contributing_receipts": {
        +      "type": "integer"
        +    },
        +    "index_value": {
        +      "type": "integer"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "metric": {
        +      "type": "string"
        +    },
        +    "window": {
        +      "properties": {
        +        "from": {
        +          "type": "string"
        +        },
        +        "to": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddetect_timeseries_anomalies1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "anomalies_flagged": {
        +      "type": "integer"
        +    },
        +    "flag_rate": {
        +      "type": "number"
        +    },
        +    "flagged_periods": {
        +      "items": {
        +        "properties": {
        +          "direction": {
        +            "type": "string"
        +          },
        +          "severity": {
        +            "type": "string"
        +          },
        +          "t": {
        +            "type": "integer"
        +          },
        +          "z": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "high_severity_flags": {
        +      "type": "integer"
        +    },
        +    "max_abs_z_score": {
        +      "type": "number"
        +    },
        +    "medium_severity_flags": {
        +      "type": "integer"
        +    },
        +    "n_periods": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddetect_transaction_anomalies1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "flag_rate": {
        +      "type": "number"
        +    },
        +    "flagged_count": {
        +      "type": "integer"
        +    },
        +    "max_anomaly_score": {
        +      "type": "number"
        +    },
        +    "mean_anomaly_score": {
        +      "type": "number"
        +    },
        +    "n_transactions_scored": {
        +      "type": "integer"
        +    },
        +    "p95_anomaly_score": {
        +      "type": "number"
        +    },
        +    "threshold": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddetermine_deposit_insurance_coverage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregation_groups": {
        +      "items": {
        +        "properties": {
        +          "account_count": {
        +            "type": "integer"
        +          },
        +          "account_refs": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "aggregated_balance_minor_units": {
        +            "type": "integer"
        +          },
        +          "allowance_minor_units": {
        +            "type": "integer"
        +          },
        +          "coverage_units": {
        +            "type": "integer"
        +          },
        +          "fully_insured": {
        +            "type": "boolean"
        +          },
        +          "insurance_aggregation_key": {
        +            "type": "string"
        +          },
        +          "insured_minor_units": {
        +            "type": "integer"
        +          },
        +          "ownership_right_and_capacity": {
        +            "type": "string"
        +          },
        +          "pass_through_applied": {
        +            "type": "boolean"
        +          },
        +          "uninsured_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "alternative_recordkeeping_handling": {
        +      "type": "string"
        +    },
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "boundary": {
        +      "type": "string"
        +    },
        +    "by_ownership_right_and_capacity": {
        +      "items": {
        +        "properties": {
        +          "accounts_with_uninsured_deposits_count": {
        +            "type": "integer"
        +          },
        +          "aggregated_balance_minor_units": {
        +            "type": "integer"
        +          },
        +          "deposit_account_count": {
        +            "type": "integer"
        +          },
        +          "distinct_account_holder_count": {
        +            "type": "integer"
        +          },
        +          "fully_insured_account_count": {
        +            "type": "integer"
        +          },
        +          "insured_minor_units": {
        +            "type": "integer"
        +          },
        +          "ownership_right_and_capacity": {
        +            "type": "string"
        +          },
        +          "undeterminable_account_count": {
        +            "type": "integer"
        +          },
        +          "uninsured_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "certification_assertion": {
        +      "properties": {
        +        "assertion_date": {
        +          "type": "string"
        +        },
        +        "assertion_present": {
        +          "type": "boolean"
        +        },
        +        "basis": {
        +          "type": "string"
        +        },
        +        "computed_here": {
        +          "type": "boolean"
        +        },
        +        "signature_evaluated_by": {
        +          "type": "string"
        +        },
        +        "signature_threshold_n": {
        +          "type": "integer"
        +        },
        +        "signer_role": {
        +          "type": "string"
        +        },
        +        "testing_performed_in_preceding_twelve_months": {
        +          "type": "boolean"
        +        },
        +        "verified_here": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "coverage_summary": {
        +      "properties": {
        +        "accounts_with_uninsured_deposits_count": {
        +          "type": "integer"
        +        },
        +        "aggregated_balance_minor_units": {
        +          "type": "integer"
        +        },
        +        "currency": {
        +          "type": "string"
        +        },
        +        "deposit_accounts_determined": {
        +          "type": "integer"
        +        },
        +        "deposit_accounts_supplied": {
        +          "type": "integer"
        +        },
        +        "distinct_account_holder_count": {
        +          "type": "integer"
        +        },
        +        "fully_insured_account_count": {
        +          "type": "integer"
        +        },
        +        "insured_minor_units": {
        +          "type": "integer"
        +        },
        +        "minor_unit_scale": {
        +          "type": "integer"
        +        },
        +        "ownership_right_and_capacity_code_count": {
        +          "type": "integer"
        +        },
        +        "undeterminable_account_count": {
        +          "type": "integer"
        +        },
        +        "uninsured_minor_units": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "covered_institution": {
        +      "properties": {
        +        "asserted_here": {
        +          "type": "boolean"
        +        },
        +        "basis": {
        +          "type": "string"
        +        },
        +        "declared_by_caller": {
        +          "type": "boolean"
        +        },
        +        "declared_deposit_account_count": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "institution_ref": {
        +      "type": "string"
        +    },
        +    "money_representation": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "ownership_code_handling": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "smdia_applied": {
        +      "type": "integer"
        +    },
        +    "smdia_basis": {
        +      "type": "string"
        +    },
        +    "smdia_is_caller_supplied": {
        +      "type": "boolean"
        +    },
        +    "undeterminable_by_missing_field": {
        +      "type": "array"
        +    },
        +    "undeterminable_records": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddigest_gleif_snapshot1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "captured_at": {
        +      "type": "string"
        +    },
        +    "golden_copy_as_of": {
        +      "type": "string"
        +    },
        +    "last_update_date": {
        +      "type": "string"
        +    },
        +    "last_update_date_found": {
        +      "type": "boolean"
        +    },
        +    "last_update_date_source": {
        +      "type": "string"
        +    },
        +    "lei": {
        +      "type": "string"
        +    },
        +    "lei_checksum_note": {
        +      "type": "string"
        +    },
        +    "lei_checksum_valid": {
        +      "type": "boolean"
        +    },
        +    "licence": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "snapshot_captured": {
        +      "type": "boolean"
        +    },
        +    "source_bytes": {
        +      "type": "integer"
        +    },
        +    "source_format": {
        +      "type": "string"
        +    },
        +    "source_sha256": {
        +      "type": "string"
        +    },
        +    "source_url": {
        +      "type": "string"
        +    },
        +    "verification_path": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddispose_carf_status_message1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "break_count": {
        +      "type": "integer"
        +    },
        +    "breaks": {
        +      "type": "array"
        +    },
        +    "carried_forward_count": {
        +      "type": "integer"
        +    },
        +    "cycle_ref": {
        +      "type": "string"
        +    },
        +    "dispositioned_break_count": {
        +      "type": "integer"
        +    },
        +    "message_ref": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "open_break_count": {
        +      "type": "integer"
        +    },
        +    "reporting_jurisdiction": {
        +      "type": "string"
        +    },
        +    "resolving_input": {
        +      "type": "string"
        +    },
        +    "schema_version": {
        +      "type": "string"
        +    },
        +    "status_message_channel": {
        +      "type": "string"
        +    },
        +    "status_message_return_declared": {
        +      "type": "boolean"
        +    },
        +    "submission_ref": {
        +      "type": "string"
        +    },
        +    "suppressed_break_count": {
        +      "type": "integer"
        +    },
        +    "suppressed_error_codes": {
        +      "type": "array"
        +    },
        +    "unresolved_record_reference_count": {
        +      "type": "integer"
        +    },
        +    "unsigned_dispositions_rejected": {
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "verdict_reason": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedestimate_cross_margin_benefit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "account_type_note": {
        +      "type": "string"
        +    },
        +    "assumptions": {
        +      "properties": {
        +        "bucket_corr": {
        +          "type": "number"
        +        },
        +        "cme_dv01_table": {
        +          "type": "string"
        +        },
        +        "confidence_level": {
        +          "type": "number"
        +        },
        +        "mpor_days": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "cross_margined_im": {
        +      "type": "integer"
        +    },
        +    "eligible_offsets": {
        +      "type": "array"
        +    },
        +    "im_reduction_pct": {
        +      "type": "integer"
        +    },
        +    "im_reduction_usd": {
        +      "type": "integer"
        +    },
        +    "ineligible_offsets": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "standalone_im_total": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedestimate_cross_venue_margin_capital1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "capital_efficiency_pct": {
        +      "type": "number"
        +    },
        +    "capital_freed_usd": {
        +      "type": "integer"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "counterparty_risk_framing": {
        +      "type": "string"
        +    },
        +    "cross_margin_offset_pct": {
        +      "type": "number"
        +    },
        +    "cross_venue_margin_requirement_usd": {
        +      "type": "integer"
        +    },
        +    "custody_model": {
        +      "type": "string"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "financed_amount_usd": {
        +      "type": "number"
        +    },
        +    "financing_apr_pct": {
        +      "type": "integer"
        +    },
        +    "financing_cost_usd": {
        +      "type": "number"
        +    },
        +    "financing_horizon_days": {
        +      "type": "integer"
        +    },
        +    "financing_notional_usd": {
        +      "type": "integer"
        +    },
        +    "leverage_multiple": {
        +      "type": "integer"
        +    },
        +    "leverage_program_cap_multiple": {
        +      "type": "integer"
        +    },
        +    "leverage_program_name": {
        +      "type": "string"
        +    },
        +    "sum_isolated_margin_usd": {
        +      "type": "integer"
        +    },
        +    "venue_count": {
        +      "type": "integer"
        +    },
        +    "venue_positions": {
        +      "items": {
        +        "properties": {
        +          "gross_notional_usd": {
        +            "type": "integer"
        +          },
        +          "isolated_margin_requirement_usd": {
        +            "type": "integer"
        +          },
        +          "venue": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedestimate_ficc_margin_netting1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "assumptions": {
        +      "properties": {
        +        "bucket_corr": {
        +          "type": "number"
        +        },
        +        "confidence_level": {
        +          "type": "number"
        +        },
        +        "daily_vol_bp": {
        +          "properties": {
        +            "0-2y": {
        +              "type": "integer"
        +            },
        +            "10-30y": {
        +              "type": "integer"
        +            },
        +            "2-5y": {
        +              "type": "integer"
        +            },
        +            "5-10y": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mpor_days": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "done_away_uplift_pct": {
        +      "type": "integer"
        +    },
        +    "estimated_vbm": {
        +      "type": "integer"
        +    },
        +    "gross_bilateral_im": {
        +      "type": "integer"
        +    },
        +    "margin_by_bucket": {
        +      "items": {
        +        "properties": {
        +          "bucket": {
        +            "type": "string"
        +          },
        +          "net_dv01": {
        +            "type": "integer"
        +          },
        +          "var": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "minimum_charge_applied": {
        +      "type": "boolean"
        +    },
        +    "net_cleared_im": {
        +      "type": "integer"
        +    },
        +    "netting_benefit_pct": {
        +      "type": "integer"
        +    },
        +    "netting_benefit_usd": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedevaluate_globe_de_minimis_exclusion1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "average_globe_income_eur": {
        +      "type": "integer"
        +    },
        +    "average_globe_income_is_loss": {
        +      "type": "boolean"
        +    },
        +    "average_globe_revenue_eur": {
        +      "type": "integer"
        +    },
        +    "averaging_window_years": {
        +      "type": "integer"
        +    },
        +    "de_minimis_available": {
        +      "type": "boolean"
        +    },
        +    "deemed_zero_topup": {
        +      "type": "boolean"
        +    },
        +    "election_made": {
        +      "type": "boolean"
        +    },
        +    "fiscal_year": {
        +      "type": "integer"
        +    },
        +    "income_test_met": {
        +      "type": "boolean"
        +    },
        +    "jurisdiction": {
        +      "type": "string"
        +    },
        +    "manual_review_required": {
        +      "type": "boolean"
        +    },
        +    "max_years_enforced": {
        +      "type": "integer"
        +    },
        +    "notes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "parameter_set_version": {
        +      "type": "string"
        +    },
        +    "partial_window_used": {
        +      "type": "boolean"
        +    },
        +    "revenue_test_met": {
        +      "type": "boolean"
        +    },
        +    "thresholds_applied": {
        +      "properties": {
        +        "income_threshold_eur": {
        +          "type": "integer"
        +        },
        +        "income_threshold_provenance": {
        +          "properties": {
        +            "effective_from": {
        +              "type": "string"
        +            },
        +            "effective_to": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            },
        +            "source_digest": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "revenue_threshold_eur": {
        +          "type": "integer"
        +        },
        +        "revenue_threshold_provenance": {
        +          "properties": {
        +            "effective_from": {
        +              "type": "string"
        +            },
        +            "effective_to": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            },
        +            "source_digest": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "years_evaluated": {
        +      "items": {
        +        "properties": {
        +          "fiscal_year": {
        +            "type": "integer"
        +          },
        +          "globe_income_or_loss_eur": {
        +            "type": "integer"
        +          },
        +          "globe_revenue_eur": {
        +            "type": "integer"
        +          },
        +          "is_loss_year": {
        +            "type": "boolean"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "years_excluded_no_constituent_entities": {
        +      "type": "integer"
        +    },
        +    "years_included": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedevaluate_globe_safe_harbour_tests1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "deemed_zero_topup": {
        +      "type": "boolean"
        +    },
        +    "fiscal_year": {
        +      "type": "integer"
        +    },
        +    "passing_test_ids": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "safe_harbour_met": {
        +      "type": "boolean"
        +    },
        +    "tests": {
        +      "items": {
        +        "properties": {
        +          "inputs": {
        +            "properties": {
        +              "de_minimis_profit_threshold_eur": {
        +                "type": "integer"
        +              },
        +              "de_minimis_revenue_threshold_eur": {
        +                "type": "integer"
        +              },
        +              "profit_before_tax_eur": {
        +                "type": "integer"
        +              },
        +              "revenue_eur": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          },
        +          "reasoning": {
        +            "type": "string"
        +          },
        +          "test_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedevaluate_irrbb_sot_eve1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "delta_eve_pct_of_tier1": {
        +      "type": "integer"
        +    },
        +    "eve_outlier": {
        +      "type": "boolean"
        +    },
        +    "sot_eve_threshold_pct": {
        +      "type": "integer"
        +    },
        +    "tier1_capital": {
        +      "type": "integer"
        +    },
        +    "worst_delta_eve": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedevaluate_irrbb_sot_nii1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "delta_nii_pct_of_nii": {
        +      "type": "integer"
        +    },
        +    "nii_outlier": {
        +      "type": "boolean"
        +    },
        +    "projected_nii": {
        +      "type": "integer"
        +    },
        +    "sot_nii_threshold_pct": {
        +      "type": "integer"
        +    },
        +    "threshold_set": {
        +      "type": "boolean"
        +    },
        +    "worst_delta_nii": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedexamine_lc_document_presentation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "clause_note": {
        +      "type": "string"
        +    },
        +    "cross_document": {
        +      "properties": {
        +        "invoice_vs_insurance_goods_description": {
        +          "type": "string"
        +        },
        +        "invoice_vs_transport_goods_description": {
        +          "type": "boolean"
        +        },
        +        "port_of_discharge": {
        +          "properties": {
        +            "document": {
        +              "type": "string"
        +            },
        +            "lc": {
        +              "type": "string"
        +            },
        +            "matches": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "port_of_loading": {
        +          "properties": {
        +            "document": {
        +              "type": "string"
        +            },
        +            "lc": {
        +              "type": "string"
        +            },
        +            "matches": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "drafts": {
        +      "items": {
        +        "properties": {
        +          "amount_minor": {
        +            "type": "integer"
        +          },
        +          "drawee": {
        +            "type": "string"
        +          },
        +          "maturity_date": {
        +            "type": "string"
        +          },
        +          "tenor_matches_lc": {
        +            "type": "string"
        +          },
        +          "tenor_type": {
        +            "type": "string"
        +          },
        +          "usance_basis": {
        +            "type": "string"
        +          },
        +          "usance_days": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "examination_window": {
        +      "properties": {
        +        "examination_date": {
        +          "type": "string"
        +        },
        +        "examination_deadline": {
        +          "type": "string"
        +        },
        +        "examination_within_window": {
        +          "type": "boolean"
        +        },
        +        "presentation_date": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "findings": {
        +      "type": "array"
        +    },
        +    "insurance_check": {
        +      "properties": {
        +        "cif_cip_value_minor": {
        +          "type": "integer"
        +        },
        +        "effective_date": {
        +          "type": "string"
        +        },
        +        "insurance_amount_minor": {
        +          "type": "integer"
        +        },
        +        "meets_floor": {
        +          "type": "boolean"
        +        },
        +        "min_insurance_pct_of_cif": {
        +          "type": "integer"
        +        },
        +        "required_minor": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "presentation_date": {
        +      "type": "string"
        +    },
        +    "presentation_window": {
        +      "properties": {
        +        "expiry_date": {
        +          "type": "string"
        +        },
        +        "latest_shipment_date": {
        +          "type": "string"
        +        },
        +        "presentation_period_days": {
        +          "type": "integer"
        +        },
        +        "shipment_date": {
        +          "type": "string"
        +        },
        +        "shipment_on_time": {
        +          "type": "boolean"
        +        },
        +        "shipment_plus_window_deadline": {
        +          "type": "string"
        +        },
        +        "within_expiry": {
        +          "type": "boolean"
        +        },
        +        "within_shipment_window": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "tolerances": {
        +      "properties": {
        +        "amount": {
        +          "properties": {
        +            "invoice_amount_minor": {
        +              "type": "integer"
        +            },
        +            "lc_amount_minor": {
        +              "type": "integer"
        +            },
        +            "tolerance_pct": {
        +              "type": "integer"
        +            },
        +            "variance_pct": {
        +              "type": "integer"
        +            },
        +            "within_tolerance": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "quantity": {
        +          "properties": {
        +            "invoice_value": {
        +              "type": "integer"
        +            },
        +            "lc_value": {
        +              "type": "integer"
        +            },
        +            "tolerance_pct": {
        +              "type": "integer"
        +            },
        +            "unit": {
        +              "type": "string"
        +            },
        +            "variance_pct": {
        +              "type": "integer"
        +            },
        +            "within_tolerance": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedexplain_regrpt_variance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "type": "array"
        +    },
        +    "current_as_of": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "policy_version": {
        +      "type": "string"
        +    },
        +    "prior_as_of": {
        +      "type": "string"
        +    },
        +    "summary": {
        +      "properties": {
        +        "all_material_explained": {
        +          "type": "boolean"
        +        },
        +        "material_count": {
        +          "type": "integer"
        +        },
        +        "requires_explanation_count": {
        +          "type": "integer"
        +        },
        +        "total_abs_movement": {
        +          "type": "integer"
        +        },
        +        "total_line_items": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "variances": {
        +      "items": {
        +        "properties": {
        +          "abs_change": {
        +            "type": "integer"
        +          },
        +          "contribution": {
        +            "type": "integer"
        +          },
        +          "current_value": {
        +            "type": "integer"
        +          },
        +          "has_explanation": {
        +            "type": "boolean"
        +          },
        +          "is_material": {
        +            "type": "boolean"
        +          },
        +          "line_item": {
        +            "type": "string"
        +          },
        +          "pct_change": {
        +            "type": "number"
        +          },
        +          "prior_value": {
        +            "type": "integer"
        +          },
        +          "rank": {
        +            "type": "integer"
        +          },
        +          "requires_explanation": {
        +            "type": "boolean"
        +          },
        +          "threshold_abs": {
        +            "type": "integer"
        +          },
        +          "threshold_pct": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedgenerate_iscc_code1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "conformance_pass": {
        +      "type": "boolean"
        +    },
        +    "data_code": {
        +      "type": "string"
        +    },
        +    "datahash": {
        +      "type": "string"
        +    },
        +    "input_bytes": {
        +      "type": "integer"
        +    },
        +    "instance_code": {
        +      "type": "string"
        +    },
        +    "iscc_code": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedgenerate_zk_compliance_proof1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "constraint_index": {
        +            "type": "integer"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "satisfied": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "constraint_count": {
        +      "type": "integer"
        +    },
        +    "predicate_label": {
        +      "type": "string"
        +    },
        +    "predicate_type": {
        +      "type": "string"
        +    },
        +    "proof_commitment": {
        +      "type": "string"
        +    },
        +    "proof_ms_simulated": {
        +      "type": "integer"
        +    },
        +    "proof_result": {
        +      "type": "string"
        +    },
        +    "proof_system": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedinspect_visa_trusted_agent_protocol1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "errors": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "level": {
        +            "type": "string"
        +          },
        +          "msg": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "parsed_label": {
        +      "type": "string"
        +    },
        +    "parsed_params": {
        +      "properties": {
        +        "alg": {
        +          "type": "string"
        +        },
        +        "created": {
        +          "type": "string"
        +        },
        +        "expires": {
        +          "type": "string"
        +        },
        +        "keyid": {
        +          "type": "string"
        +        },
        +        "nonce": {
        +          "type": "string"
        +        },
        +        "tag": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "passes": {
        +      "type": "integer"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlink_eudr_supply_chain_traceability1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "chain_integrity": {
        +      "type": "boolean"
        +    },
        +    "custody_chain_complete": {
        +      "type": "boolean"
        +    },
        +    "linked_dds_count": {
        +      "type": "integer"
        +    },
        +    "operator_is_first": {
        +      "type": "boolean"
        +    },
        +    "plot_geolocation_present": {
        +      "type": "boolean"
        +    },
        +    "refs_valid": {
        +      "type": "string"
        +    },
        +    "single_dds_rule_met": {
        +      "type": "boolean"
        +    },
        +    "traceability_gaps": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlink_traceability_lot_code1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "breaks": {
        +      "type": "array"
        +    },
        +    "depth": {
        +      "type": "integer"
        +    },
        +    "lineage": {
        +      "items": {
        +        "properties": {
        +          "cte": {
        +            "type": "string"
        +          },
        +          "linked": {
        +            "type": "boolean"
        +          },
        +          "new_lot_minted": {
        +            "type": "boolean"
        +          },
        +          "step": {
        +            "type": "integer"
        +          },
        +          "tlc": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_ab2013_training_data_disclosure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_present": {
        +      "type": "boolean"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "missing_datapoints": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "per_datapoint": {
        +      "items": {
        +        "properties": {
        +          "datapoint": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "present_count": {
        +      "type": "integer"
        +    },
        +    "statute_citation": {
        +      "type": "string"
        +    },
        +    "total_datapoints": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_aiuc1_control_evidence1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aiuc1_version": {
        +      "type": "string"
        +    },
        +    "attestation_only_count": {
        +      "type": "integer"
        +    },
        +    "automatable_scope": {
        +      "type": "integer"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "missing_count": {
        +      "type": "integer"
        +    },
        +    "overall_coverage": {
        +      "type": "integer"
        +    },
        +    "per_control": {
        +      "items": {
        +        "properties": {
        +          "control_id": {
        +            "type": "string"
        +          },
        +          "pillar": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "per_pillar_coverage": {
        +      "properties": {
        +        "A": {
        +          "type": "integer"
        +        },
        +        "B": {
        +          "type": "integer"
        +        },
        +        "C": {
        +          "type": "integer"
        +        },
        +        "D": {
        +          "type": "integer"
        +        },
        +        "E": {
        +          "type": "integer"
        +        },
        +        "F": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "procedural_controls_out_of_scope": {
        +      "type": "integer"
        +    },
        +    "receipt_backed_count": {
        +      "type": "integer"
        +    },
        +    "version_mismatch": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_arc_xreserve_config1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "grade": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_besu_settlement_contract1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "artifact_kind": {
        +      "type": "string"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "locus": {
        +            "type": "string"
        +          },
        +          "rationale": {
        +            "type": "string"
        +          },
        +          "rule_id": {
        +            "type": "string"
        +          },
        +          "severity": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "invariants_pass": {
        +      "properties": {
        +        "R1": {
        +          "type": "boolean"
        +        },
        +        "R2": {
        +          "type": "boolean"
        +        },
        +        "R3": {
        +          "type": "boolean"
        +        },
        +        "R4": {
        +          "type": "boolean"
        +        },
        +        "R5": {
        +          "type": "boolean"
        +        },
        +        "R6": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "overall": {
        +      "type": "string"
        +    },
        +    "ruleset_profile": {
        +      "type": "string"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_cbom_structure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cbom_structurally_valid": {
        +      "type": "boolean"
        +    },
        +    "cnsa2_ready_count": {
        +      "type": "integer"
        +    },
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "data_version": {
        +      "type": "string"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "classification": {
        +            "type": "string"
        +          },
        +          "index": {
        +            "type": "integer"
        +          },
        +          "matched_pattern": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "parameter_set_identifier": {
        +            "type": "string"
        +          },
        +          "primitive": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "structural_issues": {
        +      "type": "array"
        +    },
        +    "structurally_invalid_count": {
        +      "type": "integer"
        +    },
        +    "total_algorithm_assets": {
        +      "type": "integer"
        +    },
        +    "total_components": {
        +      "type": "integer"
        +    },
        +    "unclassified_count": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "vulnerable_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_cbpr_structured_address1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cbpr_plus_deadline": {
        +      "type": "string"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "readiness_pct": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "structure_type": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "violations": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_compelling_evidence_ce30_agentic1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ce30_prior_txn_test": {
        +      "type": "string"
        +    },
        +    "ce30_readiness": {
        +      "type": "string"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "missing_elements": {
        +      "type": "array"
        +    },
        +    "network": {
        +      "type": "string"
        +    },
        +    "not_a_win_prediction": {
        +      "type": "string"
        +    },
        +    "per_element": {
        +      "items": {
        +        "properties": {
        +          "element": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "reason_code": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_crypto_asset_whitepaper1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annex_i_gaps": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "conformance_grade": {
        +      "type": "string"
        +    },
        +    "ixbrl_valid": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "sections_checked": {
        +      "type": "integer"
        +    },
        +    "taxonomy_conformant": {
        +      "type": "boolean"
        +    },
        +    "taxonomy_note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_fedwire_structured_address1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "fedwire_chips_deadline": {
        +      "type": "string"
        +    },
        +    "network": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "readiness_pct": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "structure_type": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "violations": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_insurance_evidence_freshness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "cert_expired": {
        +      "type": "boolean"
        +    },
        +    "cert_expiring_within_days": {
        +      "type": "boolean"
        +    },
        +    "cert_expiry": {
        +      "type": "string"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "stale_controls": {
        +      "type": "array"
        +    },
        +    "stale_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_lei_payment_binding1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "lei_results": {
        +      "properties": {
        +        "beneficiary": {
        +          "properties": {
        +            "error": {
        +              "type": "string"
        +            },
        +            "lei": {
        +              "type": "string"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "originator": {
        +          "properties": {
        +            "error": {
        +              "type": "string"
        +            },
        +            "lei": {
        +              "type": "string"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "lei_valid": {
        +      "type": "boolean"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "wolfsberg_field_results": {
        +      "items": {
        +        "properties": {
        +          "label": {
        +            "type": "string"
        +          },
        +          "present": {
        +            "type": "boolean"
        +          },
        +          "weight": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "wolfsberg_transparency_score": {
        +      "type": "integer"
        +    },
        +    "wolfsberg_transparency_tier": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_mcp_server_conformance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "composite_grade": {
        +      "type": "string"
        +    },
        +    "composite_score": {
        +      "type": "integer"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "pass_count": {
        +      "type": "integer"
        +    },
        +    "per_domain_scores": {
        +      "items": {
        +        "properties": {
        +          "domain": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "score": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "remediation": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "domain": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "rank": {
        +            "type": "integer"
        +          },
        +          "severity": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_metro2_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "field_status": {
        +      "properties": {
        +        "account_status": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "account_type": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "current_balance": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "date_of_first_delinquency": {
        +          "properties": {
        +            "age_days": {
        +              "type": "string"
        +            },
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "date_opened": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "date_reported": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "j1_segment_present": {
        +          "type": "boolean"
        +        },
        +        "j2_segment_present": {
        +          "type": "boolean"
        +        },
        +        "k_segment_present": {
        +          "type": "boolean"
        +        },
        +        "payment_rating": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "is_delinquent_status": {
        +      "type": "boolean"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "metro2_subset_score": {
        +      "type": "integer"
        +    },
        +    "obsolete_per_fcra": {
        +      "type": "boolean"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "subset_coverage_statement": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_mismo_uldd_ulad1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "errors": {
        +      "type": "array"
        +    },
        +    "field_results": {
        +      "items": {
        +        "properties": {
        +          "field": {
        +            "type": "string"
        +          },
        +          "present": {
        +            "type": "boolean"
        +          },
        +          "required": {
        +            "type": "boolean"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fields_supplied": {
        +      "type": "integer"
        +    },
        +    "license_note": {
        +      "type": "string"
        +    },
        +    "lint_pass": {
        +      "type": "boolean"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "uldd_mandate_date": {
        +      "type": "string"
        +    },
        +    "uldd_phase": {
        +      "type": "string"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    },
        +    "warnings": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_securities_settlement_message1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "in_scope_message_types": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "out_of_scope_count": {
        +      "type": "integer"
        +    },
        +    "pass_count": {
        +      "type": "integer"
        +    },
        +    "pass_rate": {
        +      "type": "integer"
        +    },
        +    "reference": {
        +      "properties": {
        +        "bic": {
        +          "type": "string"
        +        },
        +        "isin": {
        +          "type": "string"
        +        },
        +        "out_of_scope_note": {
        +          "type": "string"
        +        },
        +        "semt_044": {
        +          "type": "string"
        +        },
        +        "sese_023": {
        +          "type": "string"
        +        },
        +        "sese_024": {
        +          "type": "string"
        +        },
        +        "standard": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "results": {
        +      "type": "array"
        +    },
        +    "scope_guard_note": {
        +      "type": "string"
        +    },
        +    "total_issues": {
        +      "type": "integer"
        +    },
        +    "total_messages": {
        +      "type": "integer"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_settlement_orchestrator_conformance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attestation": {
        +      "properties": {
        +        "bound_tool_ids": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "composite_grade": {
        +          "type": "string"
        +        },
        +        "composite_score": {
        +          "type": "integer"
        +        },
        +        "decision_policy_ref": {
        +          "type": "string"
        +        },
        +        "orchestrator_name": {
        +          "type": "string"
        +        },
        +        "transport": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "overall": {
        +      "type": "string"
        +    },
        +    "per_domain_scores": {
        +      "items": {
        +        "properties": {
        +          "domain": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "score": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_stock_token_valuation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "computed_usd_value_under_test": {
        +      "type": "integer"
        +    },
        +    "correct_value": {
        +      "type": "integer"
        +    },
        +    "corrected_expression": {
        +      "type": "string"
        +    },
        +    "delta": {
        +      "type": "integer"
        +    },
        +    "discrepancy": {
        +      "type": "string"
        +    },
        +    "double_counted_value": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_trace_cat_reports1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cat_events_checked": {
        +      "type": "integer"
        +    },
        +    "cat_events_valid": {
        +      "type": "integer"
        +    },
        +    "cat_violations": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "rules_version": {
        +      "type": "string"
        +    },
        +    "trace_result": {
        +      "properties": {
        +        "calendar_version": {
        +          "type": "string"
        +        },
        +        "deadline_utc": {
        +          "type": "string"
        +        },
        +        "execution_timestamp": {
        +          "type": "string"
        +        },
        +        "late_by_minutes": {
        +          "type": "integer"
        +        },
        +        "report_timestamp": {
        +          "type": "string"
        +        },
        +        "report_window_minutes": {
        +          "type": "integer"
        +        },
        +        "timely": {
        +          "type": "boolean"
        +        },
        +        "valid_timestamps": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_ucp_checkout_payload1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "finding_count": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "ucp_spec_pinned_tag": {
        +      "type": "string"
        +    },
        +    "ucp_spec_source": {
        +      "type": "string"
        +    },
        +    "ucp_version_declared": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_x12_claim_records1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "claim_count": {
        +      "type": "integer"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "message_type": {
        +      "type": "string"
        +    },
        +    "phi_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "subset_coverage_statement": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_charge_amount": {
        +      "type": "number"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlint_x402_v2_migration1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "declared_protocol_version": {
        +      "type": "string"
        +    },
        +    "deprecated_headers_found": {
        +      "type": "array"
        +    },
        +    "errors": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "level": {
        +            "type": "string"
        +          },
        +          "msg": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "inferred_wire_version": {
        +      "type": "integer"
        +    },
        +    "passes": {
        +      "type": "integer"
        +    },
        +    "protocol_version": {
        +      "type": "integer"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "spec_note": {
        +      "type": "string"
        +    },
        +    "v2_headers_found": {
        +      "type": "array"
        +    },
        +    "warnings": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlookup_mletr_jurisdiction_adoption1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "corridor": {
        +      "properties": {
        +        "destination": {
        +          "properties": {
        +            "citation": {
        +              "type": "string"
        +            },
        +            "code": {
        +              "type": "string"
        +            },
        +            "effective_date": {
        +              "type": "string"
        +            },
        +            "input": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "scope": {
        +              "type": "string"
        +            },
        +            "status": {
        +              "type": "string"
        +            },
        +            "statute": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "origin": {
        +          "properties": {
        +            "citation": {
        +              "type": "string"
        +            },
        +            "code": {
        +              "type": "string"
        +            },
        +            "effective_date": {
        +              "type": "string"
        +            },
        +            "input": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "scope": {
        +              "type": "string"
        +            },
        +            "status": {
        +              "type": "string"
        +            },
        +            "statute": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "data_version": {
        +      "type": "string"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "ebl_legally_effective": {
        +      "type": "boolean"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedlookup_reg_z_thresholds1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "available_years": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": "array"
        +    },
        +    "data": {
        +      "properties": {
        +        "effective": {
        +          "type": "string"
        +        },
        +        "fr_citation": {
        +          "type": "string"
        +        },
        +        "tier_1_min": {
        +          "type": "integer"
        +        },
        +        "tier_1_pct": {
        +          "type": "integer"
        +        },
        +        "tier_2_fixed": {
        +          "type": "integer"
        +        },
        +        "tier_3_min": {
        +          "type": "integer"
        +        },
        +        "tier_3_pct": {
        +          "type": "integer"
        +        },
        +        "tier_4_fixed": {
        +          "type": "integer"
        +        },
        +        "tier_5_pct": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table": {
        +      "type": "string"
        +    },
        +    "year": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_agent_payment_mandate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "canonical_pivot": {
        +      "properties": {
        +        "amount": {
        +          "type": "number"
        +        },
        +        "currency": {
        +          "type": "string"
        +        },
        +        "expires_at": {
        +          "type": "string"
        +        },
        +        "human_not_present": {
        +          "type": "boolean"
        +        },
        +        "issued_at": {
        +          "type": "string"
        +        },
        +        "mandate_id": {
        +          "type": "string"
        +        },
        +        "max_amount": {
        +          "type": "integer"
        +        },
        +        "payee_ref": {
        +          "type": "string"
        +        },
        +        "payer_ref": {
        +          "type": "string"
        +        },
        +        "purpose": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "mapping_ok": {
        +      "type": "boolean"
        +    },
        +    "mapping_receipt": {
        +      "properties": {
        +        "lossy_fields": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "mapping_table_version": {
        +          "type": "string"
        +        },
        +        "source_digest": {
        +          "type": "string"
        +        },
        +        "target_digest": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "mapping_table_version": {
        +      "type": "string"
        +    },
        +    "missing_required_target_fields": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "protocol_versions": {
        +      "properties": {
        +        "ap2": {
        +          "type": "string"
        +        },
        +        "x402": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "source_protocol": {
        +      "type": "string"
        +    },
        +    "target_protocol": {
        +      "type": "string"
        +    },
        +    "translated_mandate": {
        +      "properties": {
        +        "asset": {
        +          "type": "string"
        +        },
        +        "maxAmountRequired": {
        +          "type": "integer"
        +        },
        +        "payTo": {
        +          "type": "string"
        +        },
        +        "payload": {
        +          "properties": {
        +            "authorization": {
        +              "properties": {
        +                "from": {
        +                  "type": "string"
        +                },
        +                "nonce": {
        +                  "type": "string"
        +                },
        +                "to": {
        +                  "type": "string"
        +                },
        +                "validAfter": {
        +                  "type": "string"
        +                },
        +                "validBefore": {
        +                  "type": "string"
        +                },
        +                "value": {
        +                  "type": "number"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "resource": {
        +          "type": "string"
        +        },
        +        "scheme": {
        +          "type": "string"
        +        },
        +        "x402Version": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_ai_act_procurement_clauses1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "applicable_chapter_iii_clauses": {
        +      "type": "array"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "license_mode": {
        +      "type": "string"
        +    },
        +    "not_legal_advice": {
        +      "type": "boolean"
        +    },
        +    "official_source_url": {
        +      "type": "string"
        +    },
        +    "risk_tier": {
        +      "type": "string"
        +    },
        +    "template": {
        +      "type": "string"
        +    },
        +    "variable_map": {
        +      "properties": {
        +        "deployment_context": {
        +          "type": "string"
        +        },
        +        "risk_tier": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_bhc_schedule_hc1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "assets": {
        +      "items": {
        +        "properties": {
        +          "key": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "mdrm": {
        +            "type": "string"
        +          },
        +          "value_usd": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "boundary_note": {
        +      "type": "string"
        +    },
        +    "entity_id": {
        +      "type": "string"
        +    },
        +    "equity": {
        +      "items": {
        +        "properties": {
        +          "key": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "mdrm": {
        +            "type": "string"
        +          },
        +          "value_usd": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "identity_balanced": {
        +      "type": "boolean"
        +    },
        +    "identity_delta_usd": {
        +      "type": "integer"
        +    },
        +    "liabilities": {
        +      "items": {
        +        "properties": {
        +          "key": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "mdrm": {
        +            "type": "string"
        +          },
        +          "value_usd": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "report_form": {
        +      "type": "string"
        +    },
        +    "reporting_period": {
        +      "type": "string"
        +    },
        +    "rounding_tolerance_usd": {
        +      "type": "integer"
        +    },
        +    "schedule": {
        +      "type": "string"
        +    },
        +    "taxonomy_note": {
        +      "type": "string"
        +    },
        +    "total_assets_mdrm": {
        +      "type": "string"
        +    },
        +    "total_assets_usd": {
        +      "type": "integer"
        +    },
        +    "total_equity_capital_mdrm": {
        +      "type": "string"
        +    },
        +    "total_equity_capital_usd": {
        +      "type": "integer"
        +    },
        +    "total_liabilities_and_equity_usd": {
        +      "type": "integer"
        +    },
        +    "total_liabilities_mdrm": {
        +      "type": "string"
        +    },
        +    "total_liabilities_usd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_bhc_schedule_hcr1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "additional_tier1_capital_usd": {
        +      "type": "integer"
        +    },
        +    "boundary_note": {
        +      "type": "string"
        +    },
        +    "cet1_capital_usd": {
        +      "type": "integer"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "entity_id": {
        +      "type": "string"
        +    },
        +    "eslr": {
        +      "properties": {
        +        "applicable": {
        +          "type": "boolean"
        +        },
        +        "buffer_pct": {
        +          "type": "integer"
        +        },
        +        "final_rule_citation": {
        +          "type": "string"
        +        },
        +        "pass": {
        +          "type": "boolean"
        +        },
        +        "required_slr_pct": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "is_gsib": {
        +      "type": "boolean"
        +    },
        +    "ratios": {
        +      "properties": {
        +        "cet1_min_pct": {
        +          "type": "number"
        +        },
        +        "cet1_pass": {
        +          "type": "boolean"
        +        },
        +        "cet1_ratio_pct": {
        +          "type": "number"
        +        },
        +        "slr_min_pct": {
        +          "type": "number"
        +        },
        +        "slr_pass": {
        +          "type": "boolean"
        +        },
        +        "supplementary_leverage_ratio_pct": {
        +          "type": "number"
        +        },
        +        "tier1_min_pct": {
        +          "type": "number"
        +        },
        +        "tier1_pass": {
        +          "type": "boolean"
        +        },
        +        "tier1_ratio_pct": {
        +          "type": "number"
        +        },
        +        "total_capital_min_pct": {
        +          "type": "number"
        +        },
        +        "total_capital_pass": {
        +          "type": "boolean"
        +        },
        +        "total_capital_ratio_pct": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "report_form": {
        +      "type": "string"
        +    },
        +    "reporting_period": {
        +      "type": "string"
        +    },
        +    "schedule": {
        +      "type": "string"
        +    },
        +    "taxonomy_note": {
        +      "type": "string"
        +    },
        +    "tier1_capital_usd": {
        +      "type": "integer"
        +    },
        +    "tier2_capital_usd": {
        +      "type": "integer"
        +    },
        +    "total_capital_usd": {
        +      "type": "integer"
        +    },
        +    "total_leverage_exposure_usd": {
        +      "type": "integer"
        +    },
        +    "total_rwa_usd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_call_report_schedule_rc1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "assets": {
        +      "items": {
        +        "properties": {
        +          "key": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "mdrm": {
        +            "type": "string"
        +          },
        +          "value_usd": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "boundary_note": {
        +      "type": "string"
        +    },
        +    "entity_id": {
        +      "type": "string"
        +    },
        +    "equity": {
        +      "items": {
        +        "properties": {
        +          "key": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "mdrm": {
        +            "type": "string"
        +          },
        +          "value_usd": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "identity_balanced": {
        +      "type": "boolean"
        +    },
        +    "identity_delta_usd": {
        +      "type": "integer"
        +    },
        +    "liabilities": {
        +      "items": {
        +        "properties": {
        +          "key": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "mdrm": {
        +            "type": "string"
        +          },
        +          "value_usd": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "report_form": {
        +      "type": "string"
        +    },
        +    "reporting_period": {
        +      "type": "string"
        +    },
        +    "rounding_tolerance_usd": {
        +      "type": "integer"
        +    },
        +    "schedule": {
        +      "type": "string"
        +    },
        +    "total_assets_mdrm": {
        +      "type": "string"
        +    },
        +    "total_assets_usd": {
        +      "type": "integer"
        +    },
        +    "total_equity_capital_mdrm": {
        +      "type": "string"
        +    },
        +    "total_equity_capital_usd": {
        +      "type": "integer"
        +    },
        +    "total_liabilities_and_equity_usd": {
        +      "type": "integer"
        +    },
        +    "total_liabilities_mdrm": {
        +      "type": "string"
        +    },
        +    "total_liabilities_usd": {
        +      "type": "integer"
        +    },
        +    "xbrl_json_annex1_note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_call_report_schedule_rcr1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "additional_tier1_capital_usd": {
        +      "type": "integer"
        +    },
        +    "boundary_note": {
        +      "type": "string"
        +    },
        +    "cet1_capital_usd": {
        +      "type": "integer"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "entity_id": {
        +      "type": "string"
        +    },
        +    "eslr": {
        +      "properties": {
        +        "applicable": {
        +          "type": "boolean"
        +        },
        +        "buffer_pct": {
        +          "type": "integer"
        +        },
        +        "final_rule_citation": {
        +          "type": "string"
        +        },
        +        "pass": {
        +          "type": "boolean"
        +        },
        +        "required_slr_pct": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "is_gsib": {
        +      "type": "boolean"
        +    },
        +    "mdrm_note": {
        +      "type": "string"
        +    },
        +    "ratios": {
        +      "properties": {
        +        "cet1_min_pct": {
        +          "type": "number"
        +        },
        +        "cet1_pass": {
        +          "type": "boolean"
        +        },
        +        "cet1_ratio_pct": {
        +          "type": "number"
        +        },
        +        "slr_min_pct": {
        +          "type": "number"
        +        },
        +        "slr_pass": {
        +          "type": "boolean"
        +        },
        +        "supplementary_leverage_ratio_pct": {
        +          "type": "number"
        +        },
        +        "tier1_min_pct": {
        +          "type": "number"
        +        },
        +        "tier1_pass": {
        +          "type": "boolean"
        +        },
        +        "tier1_ratio_pct": {
        +          "type": "number"
        +        },
        +        "total_capital_min_pct": {
        +          "type": "number"
        +        },
        +        "total_capital_pass": {
        +          "type": "boolean"
        +        },
        +        "total_capital_ratio_pct": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "report_form": {
        +      "type": "string"
        +    },
        +    "reporting_period": {
        +      "type": "string"
        +    },
        +    "schedule": {
        +      "type": "string"
        +    },
        +    "tier1_capital_usd": {
        +      "type": "integer"
        +    },
        +    "tier2_capital_usd": {
        +      "type": "integer"
        +    },
        +    "total_capital_usd": {
        +      "type": "integer"
        +    },
        +    "total_leverage_exposure_usd": {
        +      "type": "integer"
        +    },
        +    "total_rwa_usd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_irrbb_standardised_approach1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "behavioural_mortgage_prepay_pct": {
        +      "type": "integer"
        +    },
        +    "behavioural_option_addon_required": {
        +      "type": "boolean"
        +    },
        +    "core_capped": {
        +      "type": "boolean"
        +    },
        +    "core_deposit_pct_applied": {
        +      "type": "integer"
        +    },
        +    "core_deposit_pct_input": {
        +      "type": "integer"
        +    },
        +    "deposit_category": {
        +      "type": "string"
        +    },
        +    "maturity_cap_years": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_iso20022_to_evm_calldata1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "abi_type_coercions": {
        +      "items": {
        +        "properties": {
        +          "abi_input": {
        +            "type": "string"
        +          },
        +          "coercion": {
        +            "type": "string"
        +          },
        +          "iso_field": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "draft_pinned": {
        +      "type": "boolean"
        +    },
        +    "field_bindings": {
        +      "items": {
        +        "properties": {
        +          "abi_input": {
        +            "type": "string"
        +          },
        +          "iso_field": {
        +            "type": "string"
        +          },
        +          "resolved": {
        +            "type": "boolean"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "iso_message_type": {
        +      "type": "string"
        +    },
        +    "mapping_ok": {
        +      "type": "boolean"
        +    },
        +    "mapping_profile": {
        +      "type": "string"
        +    },
        +    "mapping_profile_version": {
        +      "type": "string"
        +    },
        +    "resolved_call": {
        +      "properties": {
        +        "args": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "function": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "unmapped_required_fields": {
        +      "type": "array"
        +    },
        +    "warnings": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_mt9xx_to_camt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "account_id": {
        +      "type": "string"
        +    },
        +    "camt_message_root": {
        +      "type": "string"
        +    },
        +    "coexistence_note": {
        +      "type": "string"
        +    },
        +    "default_target": {
        +      "type": "string"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "fidelity_report": {
        +      "properties": {
        +        "balance_check": {
        +          "properties": {
        +            "actual_closing_signed_cents": {
        +              "type": "integer"
        +            },
        +            "currency_consistent": {
        +              "type": "boolean"
        +            },
        +            "discrepancy_cents": {
        +              "type": "integer"
        +            },
        +            "expected_closing_signed_cents": {
        +              "type": "integer"
        +            },
        +            "opening_signed_cents": {
        +              "type": "integer"
        +            },
        +            "pass": {
        +              "type": "boolean"
        +            },
        +            "sum_entries_signed_cents": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "data_loss_warnings": {
        +          "type": "array"
        +        },
        +        "truncation_findings": {
        +          "type": "array"
        +        },
        +        "unmappable_tags": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "mapping": {
        +      "items": {
        +        "properties": {
        +          "camt_path": {
        +            "type": "string"
        +          },
        +          "mt_tag": {
        +            "type": "string"
        +          },
        +          "transform": {
        +            "type": "string"
        +          },
        +          "value": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "message_id": {
        +      "type": "string"
        +    },
        +    "mt_type": {
        +      "type": "string"
        +    },
        +    "mt_type_conflict": {
        +      "type": "boolean"
        +    },
        +    "no_swift_endorsement": {
        +      "type": "string"
        +    },
        +    "notification": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "statement": {
        +      "properties": {
        +        "closing": {
        +          "properties": {
        +            "amount_cents": {
        +              "type": "integer"
        +            },
        +            "currency": {
        +              "type": "string"
        +            },
        +            "date_iso": {
        +              "type": "string"
        +            },
        +            "dc": {
        +              "type": "string"
        +            },
        +            "signed_cents": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "entries": {
        +          "items": {
        +            "properties": {
        +              "amount_cents": {
        +                "type": "integer"
        +              },
        +              "bank_reference": {
        +                "type": "string"
        +              },
        +              "camt_path": {
        +                "type": "string"
        +              },
        +              "customer_reference": {
        +                "type": "string"
        +              },
        +              "dc": {
        +                "type": "string"
        +              },
        +              "entry_date_mmdd": {
        +                "type": "string"
        +              },
        +              "funds_code": {
        +                "type": "string"
        +              },
        +              "narrative": {
        +                "type": "string"
        +              },
        +              "signed_cents": {
        +                "type": "integer"
        +              },
        +              "transaction_type_code": {
        +                "type": "string"
        +              },
        +              "value_date_iso": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "opening": {
        +          "properties": {
        +            "amount_cents": {
        +              "type": "integer"
        +            },
        +            "currency": {
        +              "type": "string"
        +            },
        +            "date_iso": {
        +              "type": "string"
        +            },
        +            "dc": {
        +              "type": "string"
        +            },
        +            "signed_cents": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "seq_number": {
        +          "type": "string"
        +        },
        +        "stmt_number": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "target": {
        +      "type": "string"
        +    },
        +    "target_overridden": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_nist_ai_rmf_functions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_gaps": {
        +      "type": "array"
        +    },
        +    "controls_present": {
        +      "type": "integer"
        +    },
        +    "coverage_band": {
        +      "type": "string"
        +    },
        +    "function_coverage": {
        +      "properties": {
        +        "GOVERN": {
        +          "properties": {
        +            "gaps": {
        +              "type": "array"
        +            },
        +            "present": {
        +              "type": "integer"
        +            },
        +            "score": {
        +              "type": "integer"
        +            },
        +            "total": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "MANAGE": {
        +          "properties": {
        +            "gaps": {
        +              "type": "array"
        +            },
        +            "present": {
        +              "type": "integer"
        +            },
        +            "score": {
        +              "type": "integer"
        +            },
        +            "total": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "MAP": {
        +          "properties": {
        +            "gaps": {
        +              "type": "array"
        +            },
        +            "present": {
        +              "type": "integer"
        +            },
        +            "score": {
        +              "type": "integer"
        +            },
        +            "total": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "MEASURE": {
        +          "properties": {
        +            "gaps": {
        +              "type": "array"
        +            },
        +            "present": {
        +              "type": "integer"
        +            },
        +            "score": {
        +              "type": "integer"
        +            },
        +            "total": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "overall_coverage": {
        +      "type": "integer"
        +    },
        +    "total_controls": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_nmd_behavioral_repricing1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "buckets_used": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "convention": {
        +      "type": "string"
        +    },
        +    "net_repricing_gap": {
        +      "properties": {
        +        "m1_y1": {
        +          "type": "integer"
        +        },
        +        "on_1m": {
        +          "type": "integer"
        +        },
        +        "y10_plus": {
        +          "type": "integer"
        +        },
        +        "y1_y3": {
        +          "type": "integer"
        +        },
        +        "y3_y5": {
        +          "type": "integer"
        +        },
        +        "y5_y10": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "segment_results": {
        +      "items": {
        +        "properties": {
        +          "allocation_sum": {
        +            "type": "integer"
        +          },
        +          "balance": {
        +            "type": "integer"
        +          },
        +          "beta": {
        +            "type": "number"
        +          },
        +          "bucket_gaps": {
        +            "properties": {
        +              "m1_y1": {
        +                "type": "integer"
        +              },
        +              "on_1m": {
        +                "type": "integer"
        +              },
        +              "y10_plus": {
        +                "type": "integer"
        +              },
        +              "y1_y3": {
        +                "type": "integer"
        +              },
        +              "y3_y5": {
        +                "type": "integer"
        +              },
        +              "y5_y10": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "rate_sensitive_balance": {
        +            "type": "integer"
        +          },
        +          "sums_to_one": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_balance": {
        +      "type": "integer"
        +    },
        +    "total_net_repricing_gap": {
        +      "type": "integer"
        +    },
        +    "total_rate_sensitive_balance": {
        +      "type": "integer"
        +    },
        +    "weighted_avg_beta": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_pil_flavor1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "docs": {
        +      "type": "string"
        +    },
        +    "flavor": {
        +      "type": "string"
        +    },
        +    "flavor_label": {
        +      "type": "string"
        +    },
        +    "license_terms_id": {
        +      "type": "integer"
        +    },
        +    "pil_terms": {
        +      "properties": {
        +        "commercialAttribution": {
        +          "type": "boolean"
        +        },
        +        "commercialRevShare": {
        +          "type": "integer"
        +        },
        +        "commercialUse": {
        +          "type": "boolean"
        +        },
        +        "defaultMintingFee": {
        +          "type": "integer"
        +        },
        +        "derivativesAllowed": {
        +          "type": "boolean"
        +        },
        +        "derivativesAttribution": {
        +          "type": "boolean"
        +        },
        +        "derivativesReciprocal": {
        +          "type": "boolean"
        +        },
        +        "licenseTermsId": {
        +          "type": "integer"
        +        },
        +        "transferable": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_robinhood_chain_regime1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "assumptions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "disclose_no_voting_rights": {
        +      "type": "boolean"
        +    },
        +    "issuer_entity": {
        +      "type": "string"
        +    },
        +    "mica_carveout_applies": {
        +      "type": "boolean"
        +    },
        +    "mifid2_transferable_security": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "prospectus_exposure": {
        +      "type": "boolean"
        +    },
        +    "regime_tree": {
        +      "items": {
        +        "properties": {
        +          "applicable": {
        +            "type": "boolean"
        +          },
        +          "assumption": {
        +            "type": "string"
        +          },
        +          "basis": {
        +            "type": "string"
        +          },
        +          "framework": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "us_persons_gate_violated": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmap_tempo_settlement1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "iso20022_pacs008": {
        +      "properties": {
        +        "charge_bearer": {
        +          "type": "string"
        +        },
        +        "creditor": {
        +          "properties": {
        +            "lei": {
        +              "type": "string"
        +            },
        +            "party_name": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "creditor_agent": {
        +          "properties": {
        +            "bicfi": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "debtor": {
        +          "properties": {
        +            "lei": {
        +              "type": "string"
        +            },
        +            "party_name": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "debtor_agent": {
        +          "properties": {
        +            "bicfi": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "instructed_amount": {
        +          "properties": {
        +            "amount": {
        +              "type": "integer"
        +            },
        +            "currency": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "message_type": {
        +          "type": "string"
        +        },
        +        "remittance_information": {
        +          "type": "string"
        +        },
        +        "settlement_date": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "memo": {
        +      "type": "string"
        +    },
        +    "protocol": {
        +      "type": "string"
        +    },
        +    "protocol_binding": {
        +      "properties": {
        +        "fields_mapped": {
        +          "type": "string"
        +        },
        +        "standard": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "tip20_transfer": {
        +      "properties": {
        +        "amount": {
        +          "type": "integer"
        +        },
        +        "currency": {
        +          "type": "string"
        +        },
        +        "memo": {
        +          "type": "string"
        +        },
        +        "network": {
        +          "type": "string"
        +        },
        +        "receiver_address": {
        +          "type": "string"
        +        },
        +        "sender_address": {
        +          "type": "string"
        +        },
        +        "settlement_date": {
        +          "type": "string"
        +        },
        +        "stablecoin": {
        +          "type": "string"
        +        },
        +        "token_standard": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "truncated": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmatch_confirmations1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "duplicate_confirmation_keys": {
        +      "type": "array"
        +    },
        +    "duplicate_ledger_keys": {
        +      "type": "array"
        +    },
        +    "exact_count": {
        +      "type": "integer"
        +    },
        +    "matched": {
        +      "items": {
        +        "properties": {
        +          "confirmation_id": {
        +            "type": "string"
        +          },
        +          "confirmed_balance": {
        +            "type": "integer"
        +          },
        +          "counterparty_id": {
        +            "type": "string"
        +          },
        +          "ledger_balance": {
        +            "type": "integer"
        +          },
        +          "match_type": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "variance": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "matched_count": {
        +      "type": "integer"
        +    },
        +    "tolerance_count": {
        +      "type": "integer"
        +    },
        +    "tolerance_used": {
        +      "properties": {
        +        "abs": {
        +          "type": "integer"
        +        },
        +        "declared_by_caller": {
        +          "type": "boolean"
        +        },
        +        "pct": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "total_confirmations": {
        +      "type": "integer"
        +    },
        +    "total_ledger_balances": {
        +      "type": "integer"
        +    },
        +    "unmatched": {
        +      "items": {
        +        "properties": {
        +          "confirmation_id": {
        +            "type": "string"
        +          },
        +          "confirmed_balance": {
        +            "type": "integer"
        +          },
        +          "counterparty_id": {
        +            "type": "string"
        +          },
        +          "ledger_balance": {
        +            "type": "integer"
        +          },
        +          "reason": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "variance": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "unmatched_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_agent_service_metering1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "batch": {
        +      "type": "boolean"
        +    },
        +    "batch_savings_pct": {
        +      "type": "number"
        +    },
        +    "batch_size": {
        +      "type": "integer"
        +    },
        +    "breakeven_calls_day": {
        +      "type": "integer"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "gross_revenue_day": {
        +      "type": "integer"
        +    },
        +    "model": {
        +      "type": "string"
        +    },
        +    "net_margin_day": {
        +      "type": "integer"
        +    },
        +    "net_margin_pct": {
        +      "type": "number"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rail": {
        +      "type": "string"
        +    },
        +    "sensitivity": {
        +      "items": {
        +        "properties": {
        +          "batch_size": {
        +            "type": "integer"
        +          },
        +          "net_margin_day": {
        +            "type": "integer"
        +          },
        +          "net_margin_pct": {
        +            "type": "number"
        +          },
        +          "settlement_cost_day": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "settlement_cost_day": {
        +      "type": "integer"
        +    },
        +    "status_asof": {
        +      "type": "string"
        +    },
        +    "take_and_infra_day": {
        +      "type": "integer"
        +    },
        +    "unit_price_minor": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_arc_cpn_economics1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rail": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_arc_paymaster_economics1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_arc_stablefx_rfq1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_buy_in_exposure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "buyin_triggered_count": {
        +      "type": "integer"
        +    },
        +    "modeled_fails": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "reference": {
        +      "properties": {
        +        "extension_days_source": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "regulation": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "status_note": {
        +      "type": "string"
        +    },
        +    "total_buyin_exposure": {
        +      "type": "integer"
        +    },
        +    "total_cash_comp_exposure": {
        +      "type": "integer"
        +    },
        +    "total_fails": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_cbam_certificate_cost1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cbam_factor": {
        +      "type": "number"
        +    },
        +    "cbam_factor_applied": {
        +      "type": "number"
        +    },
        +    "cbam_factor_year": {
        +      "type": "integer"
        +    },
        +    "certificate_liability_eur": {
        +      "type": "integer"
        +    },
        +    "certificates_required": {
        +      "type": "integer"
        +    },
        +    "eua_reference_price": {
        +      "type": "integer"
        +    },
        +    "free_allocation_phaseout_pct": {
        +      "type": "number"
        +    },
        +    "gross_liability_tco2e": {
        +      "type": "integer"
        +    },
        +    "net_liability_eur": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "origin_price_credit": {
        +      "type": "integer"
        +    },
        +    "quarterly_holding_schedule": {
        +      "type": "array"
        +    },
        +    "reference": {
        +      "properties": {
        +        "cbam_factor_source": {
        +          "type": "string"
        +        },
        +        "eua_price_note": {
        +          "type": "string"
        +        },
        +        "reference_version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "surrender_deadline": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_clearing_access_economics1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annual_cost_by_model": {
        +      "properties": {
        +        "agent_done_away": {
        +          "type": "integer"
        +        },
        +        "direct": {
        +          "type": "integer"
        +        },
        +        "sponsored_done_away": {
        +          "type": "integer"
        +        },
        +        "sponsored_done_with": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "cfo_memo": {
        +      "type": "string"
        +    },
        +    "eligibility_gates": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "execution_access_score": {
        +      "type": "integer"
        +    },
        +    "im_estimate_by_model": {
        +      "properties": {
        +        "agent_done_away": {
        +          "type": "integer"
        +        },
        +        "direct": {
        +          "type": "integer"
        +        },
        +        "sponsored_done_away": {
        +          "type": "integer"
        +        },
        +        "sponsored_done_with": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "model_scores": {
        +      "properties": {
        +        "agent_done_away": {
        +          "properties": {
        +            "blended": {
        +              "type": "number"
        +            },
        +            "cost_score": {
        +              "type": "integer"
        +            },
        +            "eligible": {
        +              "type": "boolean"
        +            },
        +            "exec_score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "direct": {
        +          "properties": {
        +            "blended": {
        +              "type": "number"
        +            },
        +            "cost_score": {
        +              "type": "integer"
        +            },
        +            "eligible": {
        +              "type": "boolean"
        +            },
        +            "exec_score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "sponsored_done_away": {
        +          "properties": {
        +            "blended": {
        +              "type": "number"
        +            },
        +            "cost_score": {
        +              "type": "integer"
        +            },
        +            "eligible": {
        +              "type": "boolean"
        +            },
        +            "exec_score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "sponsored_done_with": {
        +          "properties": {
        +            "blended": {
        +              "type": "number"
        +            },
        +            "cost_score": {
        +              "type": "integer"
        +            },
        +            "eligible": {
        +              "type": "boolean"
        +            },
        +            "exec_score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "netting_efficiency_pct": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "recommended_model": {
        +      "type": "string"
        +    },
        +    "segregation_recommendation": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_l1_fee_runway1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annual_tco": {
        +      "type": "integer"
        +    },
        +    "as_of": {
        +      "type": "integer"
        +    },
        +    "breakdown": {
        +      "properties": {
        +        "fee_component_annual": {
        +          "type": "integer"
        +        },
        +        "infra_component_annual": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "current_balance": {
        +      "type": "integer"
        +    },
        +    "depletion_offset_days": {
        +      "type": "integer"
        +    },
        +    "fee_growth_rate_annual_pct": {
        +      "type": "integer"
        +    },
        +    "fee_rate_avax_per_validator_month": {
        +      "type": "number"
        +    },
        +    "fee_rate_defaulted": {
        +      "type": "boolean"
        +    },
        +    "horizon_months": {
        +      "type": "integer"
        +    },
        +    "infra_cost_annual": {
        +      "type": "integer"
        +    },
        +    "months_to_depletion": {
        +      "type": "integer"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "refill_amount_required": {
        +      "type": "number"
        +    },
        +    "runway_flag": {
        +      "type": "string"
        +    },
        +    "target_runway_months": {
        +      "type": "integer"
        +    },
        +    "validator_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_stablecoin_corridor_economics1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "break_even_usd": {
        +      "type": "number"
        +    },
        +    "chain_fee_usd": {
        +      "type": "number"
        +    },
        +    "correspondent_cost_pct": {
        +      "type": "integer"
        +    },
        +    "correspondent_cost_usd": {
        +      "type": "integer"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "float_savings_usd": {
        +      "type": "integer"
        +    },
        +    "fx_markup_share_of_traditional": {
        +      "type": "number"
        +    },
        +    "fx_spread_usd": {
        +      "type": "integer"
        +    },
        +    "gross_cost_bps": {
        +      "type": "number"
        +    },
        +    "gross_cost_pct": {
        +      "type": "number"
        +    },
        +    "gross_stablecoin_cost_usd": {
        +      "type": "number"
        +    },
        +    "meets_sdg_target": {
        +      "type": "boolean"
        +    },
        +    "net_cost_bps": {
        +      "type": "number"
        +    },
        +    "net_cost_pct": {
        +      "type": "number"
        +    },
        +    "net_stablecoin_cost_usd": {
        +      "type": "number"
        +    },
        +    "off_ramp_fee_usd": {
        +      "type": "integer"
        +    },
        +    "on_ramp_fee_usd": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "savings_vs_traditional_pct": {
        +      "type": "number"
        +    },
        +    "savings_vs_traditional_usd": {
        +      "type": "number"
        +    },
        +    "sdg_target_pct": {
        +      "type": "integer"
        +    },
        +    "send_amount_usd": {
        +      "type": "integer"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_tempo_gas_economics1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "amm_slippage_bps": {
        +      "type": "number"
        +    },
        +    "annual_saving": {
        +      "type": "integer"
        +    },
        +    "baseline_fee": {
        +      "type": "integer"
        +    },
        +    "blended_gas_cost": {
        +      "type": "number"
        +    },
        +    "cfo_memo": {
        +      "type": "string"
        +    },
        +    "effective_cost": {
        +      "type": "number"
        +    },
        +    "per_tx_saving": {
        +      "type": "number"
        +    },
        +    "server_paid_pct": {
        +      "type": "number"
        +    },
        +    "sponsorship_breakeven_tx": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedmodel_tempo_payment_economics1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annual_saving_usd": {
        +      "type": "number"
        +    },
        +    "break_even_months": {
        +      "type": "number"
        +    },
        +    "impl_cost_usd": {
        +      "type": "integer"
        +    },
        +    "monthly_saving_usd": {
        +      "type": "number"
        +    },
        +    "per_tx_incumbent_usd": {
        +      "type": "integer"
        +    },
        +    "per_tx_saving_usd": {
        +      "type": "number"
        +    },
        +    "per_tx_tempo_usd": {
        +      "type": "number"
        +    },
        +    "rail": {
        +      "type": "string"
        +    },
        +    "saving_bps": {
        +      "type": "integer"
        +    },
        +    "stablecoin": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedoptimize_social_security_claim_age1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "birthYear": {
        +      "type": "integer"
        +    },
        +    "breakEvenAge62vs70": {
        +      "type": "integer"
        +    },
        +    "claimAge": {
        +      "type": "integer"
        +    },
        +    "earningsTestAnnualLimit": {
        +      "type": "integer"
        +    },
        +    "earningsTestLimitSource": {
        +      "type": "string"
        +    },
        +    "fullRetirementAge": {
        +      "type": "integer"
        +    },
        +    "lifetimePV": {
        +      "type": "number"
        +    },
        +    "longevityAge": {
        +      "type": "integer"
        +    },
        +    "monthlyBenefitAtClaimAge": {
        +      "type": "integer"
        +    },
        +    "pia": {
        +      "type": "integer"
        +    },
        +    "recommendedClaimAge": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedparse_camt053_reconciliation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "balance_equation_passes": {
        +      "type": "boolean"
        +    },
        +    "bucket_amounts": {
        +      "properties": {
        +        "CREDIT_ISSUED": {
        +          "type": "integer"
        +        },
        +        "CREDIT_RECEIVED": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "calculated_closing": {
        +      "type": "integer"
        +    },
        +    "closing_balance": {
        +      "type": "integer"
        +    },
        +    "credit_sum": {
        +      "type": "integer"
        +    },
        +    "day_count_convention": {
        +      "type": "string"
        +    },
        +    "debit_sum": {
        +      "type": "integer"
        +    },
        +    "match_rate_pct": {
        +      "type": "integer"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "opening_balance": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "reconciliation_status": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "structured_count": {
        +      "type": "integer"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_transactions": {
        +      "type": "integer"
        +    },
        +    "tx_counts_by_bucket": {
        +      "properties": {
        +        "CREDIT_ISSUED": {
        +          "type": "integer"
        +        },
        +        "CREDIT_RECEIVED": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "unstructured_count": {
        +      "type": "integer"
        +    },
        +    "variance": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedplan_aml_disposition_sample1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "confidence_level": {
        +      "type": "integer"
        +    },
        +    "disposition_population_hash": {
        +      "type": "string"
        +    },
        +    "disposition_population_size": {
        +      "type": "integer"
        +    },
        +    "expansion_factor": {
        +      "type": "integer"
        +    },
        +    "expected_deviation_rate": {
        +      "type": "integer"
        +    },
        +    "interval": {
        +      "type": "integer"
        +    },
        +    "method": {
        +      "type": "string"
        +    },
        +    "reviewer_roster": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reviewer_workload": {
        +      "items": {
        +        "properties": {
        +          "disposition_indices": {
        +            "items": {
        +              "type": "integer"
        +            },
        +            "type": "array"
        +          },
        +          "reviewer_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "sample_size": {
        +      "type": "integer"
        +    },
        +    "selected_indices": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": "array"
        +    },
        +    "start_offset": {
        +      "type": "integer"
        +    },
        +    "tolerable_deviation_rate": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedplan_attribute_sample1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "confidence_level": {
        +      "type": "integer"
        +    },
        +    "expansion_factor": {
        +      "type": "integer"
        +    },
        +    "expected_deviation_rate": {
        +      "type": "integer"
        +    },
        +    "interval": {
        +      "type": "integer"
        +    },
        +    "method": {
        +      "type": "string"
        +    },
        +    "population_hash": {
        +      "type": "string"
        +    },
        +    "population_size": {
        +      "type": "integer"
        +    },
        +    "sample_size": {
        +      "type": "integer"
        +    },
        +    "selected_indices": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": "array"
        +    },
        +    "start_offset": {
        +      "type": "integer"
        +    },
        +    "tolerable_deviation_rate": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedplan_tls_pki_migration1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "algorithm_refs": {
        +      "properties": {
        +        "hybrid_overhead_mult": {
        +          "type": "number"
        +        },
        +        "ml_dsa_65_sig_bytes": {
        +          "type": "integer"
        +        },
        +        "ml_kem_768_pk_bytes": {
        +          "type": "integer"
        +        },
        +        "rsa2048_sig_bytes": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "estimated_total_weeks": {
        +      "type": "integer"
        +    },
        +    "interop_risks": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "inventory_ref": {
        +      "type": "string"
        +    },
        +    "migration_plan": {
        +      "items": {
        +        "properties": {
        +          "effort_weeks": {
        +            "type": "integer"
        +          },
        +          "notes": {
        +            "type": "string"
        +          },
        +          "phase": {
        +            "type": "integer"
        +          },
        +          "target": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "payload_impact_bytes": {
        +      "type": "integer"
        +    },
        +    "pki_summary": {
        +      "properties": {
        +        "intermediate_count": {
        +          "type": "integer"
        +        },
        +        "leaf_population": {
        +          "type": "integer"
        +        },
        +        "root_cas": {
        +          "type": "integer"
        +        },
        +        "tls_versions": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "rollback_points": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "strategy": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedprecheck_reserve_attestation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aicpa_2025_score_pct": {
        +      "type": "integer"
        +    },
        +    "applicable_deadline": {
        +      "type": "string"
        +    },
        +    "asset_results": {
        +      "type": "array"
        +    },
        +    "attestation_readiness_determination": {
        +      "type": "string"
        +    },
        +    "conditional_assets_usd": {
        +      "type": "integer"
        +    },
        +    "coverage_ratio_pct": {
        +      "type": "integer"
        +    },
        +    "failing_dimensions": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "dim": {
        +            "type": "string"
        +          },
        +          "ref": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "prohibited_assets_usd": {
        +      "type": "integer"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "reserve_shortfall_usd": {
        +      "type": "integer"
        +    },
        +    "total_liabilities_usd": {
        +      "type": "integer"
        +    },
        +    "total_reserves_usd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedpredict_settlement_fail1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "batch_fail_rate_estimate": {
        +      "type": "integer"
        +    },
        +    "methodology": {
        +      "properties": {
        +        "data_source": {
        +          "type": "string"
        +        },
        +        "description": {
        +          "type": "string"
        +        },
        +        "feature_weights": {
        +          "properties": {
        +            "counterparty_fail_band": {
        +              "type": "string"
        +            },
        +            "deadline_proximity": {
        +              "type": "string"
        +            },
        +            "inventory_status": {
        +              "type": "string"
        +            },
        +            "liquidity_tier": {
        +              "type": "string"
        +            },
        +            "partial_available": {
        +              "type": "string"
        +            },
        +            "ssi_match_status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "scored_trades": {
        +      "type": "array"
        +    },
        +    "top_drivers": {
        +      "type": "array"
        +    },
        +    "trade_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedprevalidation_readiness_scorer1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cbpr_plus_deadline": {
        +      "type": "string"
        +    },
        +    "chain_gate_note": {
        +      "type": "string"
        +    },
        +    "check_details": {
        +      "properties": {
        +        "address": {
        +          "properties": {
        +            "error": {
        +              "type": "string"
        +            },
        +            "type": {
        +              "type": "string"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "bic": {
        +          "properties": {
        +            "error": {
        +              "type": "string"
        +            },
        +            "provided": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "iban": {
        +          "properties": {
        +            "error": {
        +              "type": "string"
        +            },
        +            "provided": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "lei": {
        +          "properties": {
        +            "error": {
        +              "type": "string"
        +            },
        +            "provided": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "uetr": {
        +          "properties": {
        +            "error": {
        +              "type": "string"
        +            },
        +            "provided": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "checks_passed": {
        +      "type": "integer"
        +    },
        +    "checks_total": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "readiness_pct": {
        +      "type": "integer"
        +    },
        +    "ready": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "remediation_actions": {
        +      "type": "array"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedprice_embedded_insurance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "annual_gwp": {
        +      "type": "integer"
        +    },
        +    "breakeven_loss_ratio_pct": {
        +      "type": "number"
        +    },
        +    "combined_ratio_pct": {
        +      "type": "integer"
        +    },
        +    "commission_cost": {
        +      "type": "integer"
        +    },
        +    "expected_losses": {
        +      "type": "integer"
        +    },
        +    "expense_ratio_pct": {
        +      "type": "integer"
        +    },
        +    "monthly_gwp": {
        +      "type": "integer"
        +    },
        +    "net_written_premium": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "opex_cost": {
        +      "type": "integer"
        +    },
        +    "per_tx_premium": {
        +      "type": "number"
        +    },
        +    "underwriting_profit": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedprove_metadata_sanitization1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "residual_risks": {
        +      "type": "array"
        +    },
        +    "sanitization_record": {
        +      "properties": {
        +        "bytes_after": {
        +          "type": "integer"
        +        },
        +        "bytes_before": {
        +          "type": "integer"
        +        },
        +        "counts": {
        +          "properties": {
        +            "redacted": {
        +              "type": "integer"
        +            },
        +            "removed": {
        +              "type": "integer"
        +            },
        +            "retained": {
        +              "type": "integer"
        +            },
        +            "total": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "file_type": {
        +          "type": "string"
        +        },
        +        "findings": {
        +          "items": {
        +            "properties": {
        +              "action": {
        +                "type": "string"
        +              },
        +              "category": {
        +                "type": "string"
        +              },
        +              "field": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "original_sha256": {
        +          "type": "string"
        +        },
        +        "record_sha256": {
        +          "type": "string"
        +        },
        +        "record_version": {
        +          "type": "string"
        +        },
        +        "sanitized_sha256": {
        +          "type": "string"
        +        },
        +        "verdict": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrdarr_aggregation_recompute1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "base_currency": {
        +      "type": "string"
        +    },
        +    "contribution_breakdown": {
        +      "items": {
        +        "properties": {
        +          "contribution_pct": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "node_id": {
        +            "type": "string"
        +          },
        +          "parent_node_id": {
        +            "type": "string"
        +          },
        +          "value": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "delta": {
        +      "type": "string"
        +    },
        +    "delta_pct": {
        +      "type": "string"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "lines_excluded": {
        +      "type": "integer"
        +    },
        +    "lines_included": {
        +      "type": "integer"
        +    },
        +    "netting_applied": {
        +      "type": "boolean"
        +    },
        +    "netting_sets": {
        +      "items": {
        +        "properties": {
        +          "gross_value": {
        +            "type": "string"
        +          },
        +          "line_count": {
        +            "type": "integer"
        +          },
        +          "net_value": {
        +            "type": "string"
        +          },
        +          "netting_key": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "recomputed_figure": {
        +      "type": "string"
        +    },
        +    "reported_figure": {
        +      "type": "string"
        +    },
        +    "rounding": {
        +      "properties": {
        +        "decimal_places": {
        +          "type": "integer"
        +        },
        +        "mode": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrdarr_quality_scorecard1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cutoff_date": {
        +      "type": "string"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "guide_version": {
        +      "type": "string"
        +    },
        +    "metrics": {
        +      "items": {
        +        "properties": {
        +          "comparator": {
        +            "type": "string"
        +          },
        +          "ecb_prerequisite_area": {
        +            "type": "string"
        +          },
        +          "metric": {
        +            "type": "string"
        +          },
        +          "record_count": {
        +            "type": "integer"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "threshold_pct": {
        +            "type": "integer"
        +          },
        +          "total_records": {
        +            "type": "integer"
        +          },
        +          "value_pct": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "scorecard": {
        +      "properties": {
        +        "breach_count": {
        +          "type": "integer"
        +        },
        +        "missing_threshold_count": {
        +          "type": "integer"
        +        },
        +        "overall_status": {
        +          "type": "string"
        +        },
        +        "pass_count": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "total_records": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_ccp_default_waterfall1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "assessment_powers_cap_declared": {
        +      "type": "boolean"
        +    },
        +    "assessment_powers_cap_minor_units": {
        +      "type": "integer"
        +    },
        +    "breach": {
        +      "type": "boolean"
        +    },
        +    "ccp_skin_in_game_display": {
        +      "type": "string"
        +    },
        +    "ccp_skin_in_game_minor_units": {
        +      "type": "integer"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "loss_amount_display": {
        +      "type": "string"
        +    },
        +    "loss_amount_minor_units": {
        +      "type": "integer"
        +    },
        +    "loss_fully_absorbed": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "provenance": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "residual_display": {
        +      "type": "string"
        +    },
        +    "residual_minor_units": {
        +      "type": "integer"
        +    },
        +    "steps": {
        +      "items": {
        +        "properties": {
        +          "absorbed_display": {
        +            "type": "string"
        +          },
        +          "absorbed_minor_units": {
        +            "type": "integer"
        +          },
        +          "exhausted_stage_capacity": {
        +            "type": "boolean"
        +          },
        +          "loss_fully_absorbed_at_this_stage": {
        +            "type": "boolean"
        +          },
        +          "private_figure": {
        +            "type": "boolean"
        +          },
        +          "stage": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "waterfall_structure": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_certified_payroll_pwa1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "apprentice_check": {
        +      "type": "string"
        +    },
        +    "citations": {
        +      "properties": {
        +        "cwhssa": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "davis_bacon_act": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "irc_45b7_correction": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "irc_45b7_penalty": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "wh347": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "comparison_basis": {
        +      "type": "string"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "deficient_worker_count": {
        +      "type": "integer"
        +    },
        +    "diff": {
        +      "items": {
        +        "properties": {
        +          "agrees": {
        +            "type": "boolean"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "difference_display": {
        +            "type": "string"
        +          },
        +          "difference_minor_units": {
        +            "type": "integer"
        +          },
        +          "in_payroll": {
        +            "type": "boolean"
        +          },
        +          "recomputed_gross_display": {
        +            "type": "string"
        +          },
        +          "recomputed_gross_minor_units": {
        +            "type": "integer"
        +          },
        +          "submitted_gross_display": {
        +            "type": "string"
        +          },
        +          "submitted_gross_minor_units": {
        +            "type": "integer"
        +          },
        +          "worker_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "indeterminate_reason": {
        +      "type": "string"
        +    },
        +    "minor_unit_exponent": {
        +      "type": "integer"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "payroll_rows": {
        +      "items": {
        +        "properties": {
        +          "classification": {
        +            "type": "string"
        +          },
        +          "combined_paid_rate_display": {
        +            "type": "string"
        +          },
        +          "combined_paid_rate_minor_units": {
        +            "type": "integer"
        +          },
        +          "deficiency_display": {
        +            "type": "string"
        +          },
        +          "deficiency_minor_units": {
        +            "type": "integer"
        +          },
        +          "fringe_paid_display": {
        +            "type": "string"
        +          },
        +          "fringe_paid_minor_units": {
        +            "type": "integer"
        +          },
        +          "ot_hours": {
        +            "type": "integer"
        +          },
        +          "paid_gross_display": {
        +            "type": "string"
        +          },
        +          "paid_gross_minor_units": {
        +            "type": "integer"
        +          },
        +          "rate_meets_wd": {
        +            "type": "boolean"
        +          },
        +          "rate_paid_display": {
        +            "type": "string"
        +          },
        +          "rate_paid_minor_units": {
        +            "type": "integer"
        +          },
        +          "required_gross_display": {
        +            "type": "string"
        +          },
        +          "required_gross_minor_units": {
        +            "type": "integer"
        +          },
        +          "st_hours": {
        +            "type": "integer"
        +          },
        +          "wd_combined_rate_display": {
        +            "type": "string"
        +          },
        +          "wd_combined_rate_minor_units": {
        +            "type": "integer"
        +          },
        +          "wd_found": {
        +            "type": "boolean"
        +          },
        +          "worker_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "project_ref": {
        +      "type": "string"
        +    },
        +    "pwa_mode": {
        +      "type": "boolean"
        +    },
        +    "pwa_result": {
        +      "properties": {
        +        "correction_computable": {
        +          "type": "boolean"
        +        },
        +        "deficient_worker_count": {
        +          "type": "integer"
        +        },
        +        "intentional_disregard": {
        +          "type": "boolean"
        +        },
        +        "irc_6621_underpayment_rate_percent": {
        +          "type": "string"
        +        },
        +        "penalty_scope": {
        +          "type": "string"
        +        },
        +        "penalty_worker_count": {
        +          "type": "integer"
        +        },
        +        "per_worker_penalty_display": {
        +          "type": "string"
        +        },
        +        "per_worker_penalty_minor_units": {
        +          "type": "integer"
        +        },
        +        "total_correction_payment_display": {
        +          "type": "string"
        +        },
        +        "total_correction_payment_minor_units": {
        +          "type": "string"
        +        },
        +        "total_penalty_display": {
        +          "type": "string"
        +        },
        +        "total_penalty_minor_units": {
        +          "type": "integer"
        +        },
        +        "underpayment_days": {
        +          "type": "string"
        +        },
        +        "worker_corrections": {
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "submitted_supplied": {
        +      "type": "boolean"
        +    },
        +    "total_deficiency_display": {
        +      "type": "string"
        +    },
        +    "total_deficiency_minor_units": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "wage_determination": {
        +      "items": {
        +        "properties": {
        +          "base_rate_minor_units": {
        +            "type": "integer"
        +          },
        +          "classification": {
        +            "type": "string"
        +          },
        +          "combined_rate_minor_units": {
        +            "type": "integer"
        +          },
        +          "fringe_rate_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "week_ending_label": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_corporate_action_entitlement1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cash_entitlement": {
        +      "type": "integer"
        +    },
        +    "corporate_action_type": {
        +      "type": "string"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "dtcc_operator_mandate_basis": {
        +      "type": "string"
        +    },
        +    "entitlement_computed": {
        +      "type": "boolean"
        +    },
        +    "entitlement_mode": {
        +      "type": "string"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "fractional_shares": {
        +      "type": "string"
        +    },
        +    "fractional_shares_present": {
        +      "type": "boolean"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "reference_id": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "violations": {
        +      "type": "array"
        +    },
        +    "whole_shares": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_csdr_penalty1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "determinations": {
        +      "items": {
        +        "properties": {
        +          "asset_class": {
        +            "type": "string"
        +          },
        +          "counterparty_id": {
        +            "type": "string"
        +          },
        +          "daily_rate_bps": {
        +            "type": "integer"
        +          },
        +          "fail_days": {
        +            "type": "integer"
        +          },
        +          "fail_id": {
        +            "type": "string"
        +          },
        +          "gross_penalty": {
        +            "type": "integer"
        +          },
        +          "isin": {
        +            "type": "string"
        +          },
        +          "isin_private": {
        +            "type": "boolean"
        +          },
        +          "partial_credit": {
        +            "type": "integer"
        +          },
        +          "partial_settled_pct": {
        +            "type": "integer"
        +          },
        +          "penalty_amount": {
        +            "type": "integer"
        +          },
        +          "penalty_type": {
        +            "type": "string"
        +          },
        +          "quantity": {
        +            "type": "integer"
        +          },
        +          "reference_price": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rate_table_version": {
        +      "type": "string"
        +    },
        +    "recompute_id": {
        +      "type": "string"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "total_penalty_exposure": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_exchange_fee_tier_invoice1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "active_tier": {
        +      "properties": {
        +        "maker_rate_micros_per_share": {
        +          "type": "integer"
        +        },
        +        "min_adv_shares": {
        +          "type": "integer"
        +        },
        +        "taker_rate_micros_per_share": {
        +          "type": "integer"
        +        },
        +        "tier_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "cap_check": {
        +      "properties": {
        +        "cap_micros_per_share": {
        +          "type": "integer"
        +        },
        +        "quotes_priced_ge_1usd": {
        +          "type": "boolean"
        +        },
        +        "tier_findings": {
        +          "items": {
        +            "properties": {
        +              "exceeds_cap": {
        +                "type": "boolean"
        +              },
        +              "taker_rate_micros_per_share": {
        +                "type": "integer"
        +              },
        +              "tier_id": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "cap_verdict": {
        +      "type": "string"
        +    },
        +    "claimed_invoice_micros": {
        +      "type": "integer"
        +    },
        +    "clause_note": {
        +      "type": "string"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "diff_micros": {
        +      "type": "integer"
        +    },
        +    "fee_schedule_summary": {
        +      "properties": {
        +        "effective_date": {
        +          "type": "string"
        +        },
        +        "quotes_priced_ge_1usd": {
        +          "type": "boolean"
        +        },
        +        "schedule_id": {
        +          "type": "string"
        +        },
        +        "tier_count": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "findings": {
        +      "type": "array"
        +    },
        +    "invoice_period": {
        +      "properties": {
        +        "end_date": {
        +          "type": "string"
        +        },
        +        "start_date": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "invoice_verdict": {
        +      "type": "string"
        +    },
        +    "prior_period_adv_shares": {
        +      "type": "integer"
        +    },
        +    "recompute_tolerance_micros": {
        +      "type": "integer"
        +    },
        +    "recomputed_invoice_micros": {
        +      "type": "integer"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "tiers": {
        +      "items": {
        +        "properties": {
        +          "maker_rate_micros_per_share": {
        +            "type": "integer"
        +          },
        +          "min_adv_shares": {
        +            "type": "integer"
        +          },
        +          "taker_rate_micros_per_share": {
        +            "type": "integer"
        +          },
        +          "tier_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "volume_summary": {
        +      "properties": {
        +        "line_count": {
        +          "type": "integer"
        +        },
        +        "maker_shares_total": {
        +          "type": "integer"
        +        },
        +        "taker_shares_total": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_fund_fees1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "agreement_ref": {
        +      "type": "string"
        +    },
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "diff": {
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "fund_id": {
        +      "type": "string"
        +    },
        +    "judgment_required": {
        +      "type": "string"
        +    },
        +    "management_fee_computed": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "performance_fee": {
        +      "properties": {
        +        "crystallisation": {
        +          "type": "string"
        +        },
        +        "eligible_gain": {
        +          "type": "string"
        +        },
        +        "first_period_no_prior_hwm": {
        +          "type": "boolean"
        +        },
        +        "gain_above_hwm": {
        +          "type": "string"
        +        },
        +        "hurdle_cleared": {
        +          "type": "boolean"
        +        },
        +        "hurdle_excess_amount": {
        +          "type": "string"
        +        },
        +        "hurdle_rate": {
        +          "type": "string"
        +        },
        +        "hurdle_type": {
        +          "type": "string"
        +        },
        +        "hwm_exceeded": {
        +          "type": "boolean"
        +        },
        +        "loss_carryforward": {
        +          "type": "boolean"
        +        },
        +        "new_high_water_mark": {
        +          "type": "string"
        +        },
        +        "performance_fee_accrued": {
        +          "type": "string"
        +        },
        +        "performance_fee_crystallised": {
        +          "type": "string"
        +        },
        +        "period_return_pct": {
        +          "type": "string"
        +        },
        +        "prior_high_water_mark": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "period_days": {
        +      "type": "integer"
        +    },
        +    "period_end": {
        +      "type": "string"
        +    },
        +    "period_start": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "recompute_only": {
        +      "type": "boolean"
        +    },
        +    "rounding": {
        +      "properties": {
        +        "decimal_places": {
        +          "type": "integer"
        +        },
        +        "mode": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "terms_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_fund_nav1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "base_currency": {
        +      "type": "string"
        +    },
        +    "components": {
        +      "properties": {
        +        "accrued_expense": {
        +          "type": "array"
        +        },
        +        "accrued_expense_total": {
        +          "type": "string"
        +        },
        +        "accrued_income": {
        +          "type": "array"
        +        },
        +        "accrued_income_total": {
        +          "type": "string"
        +        },
        +        "holdings": {
        +          "items": {
        +            "properties": {
        +              "base_value": {
        +                "type": "string"
        +              },
        +              "currency": {
        +                "type": "string"
        +              },
        +              "local_value": {
        +                "type": "string"
        +              },
        +              "price": {
        +                "type": "string"
        +              },
        +              "quantity": {
        +                "type": "string"
        +              },
        +              "security_id": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "holdings_value": {
        +          "type": "string"
        +        },
        +        "liabilities": {
        +          "type": "array"
        +        },
        +        "liabilities_total": {
        +          "type": "string"
        +        },
        +        "net_assets": {
        +          "type": "string"
        +        },
        +        "shares_outstanding": {
        +          "type": "string"
        +        },
        +        "total_assets": {
        +          "type": "string"
        +        },
        +        "total_liabilities": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "fund_id": {
        +      "type": "string"
        +    },
        +    "nav_per_share": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "rounding": {
        +      "properties": {
        +        "decimal_places": {
        +          "type": "integer"
        +        },
        +        "mode": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    },
        +    "valuation_date": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_garnishment_stack1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregate_cap_display": {
        +      "type": "string"
        +    },
        +    "aggregate_cap_minor_units": {
        +      "type": "integer"
        +    },
        +    "ccpa_floor_display": {
        +      "type": "string"
        +    },
        +    "ccpa_floor_minor_units": {
        +      "type": "integer"
        +    },
        +    "citations": {
        +      "properties": {
        +        "ccpa_general_cap": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "ccpa_support_tiers": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "dol_fact_sheet_30": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "federal_tax_levy_exemption": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "hea_awg": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "comparison_basis": {
        +      "type": "string"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "diff": {
        +      "items": {
        +        "properties": {
        +          "agrees": {
        +            "type": "boolean"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "difference_display": {
        +            "type": "string"
        +          },
        +          "difference_minor_units": {
        +            "type": "integer"
        +          },
        +          "in_order_stack": {
        +            "type": "boolean"
        +          },
        +          "noticed_display": {
        +            "type": "string"
        +          },
        +          "noticed_minor_units": {
        +            "type": "integer"
        +          },
        +          "order_id": {
        +            "type": "string"
        +          },
        +          "recomputed_display": {
        +            "type": "string"
        +          },
        +          "recomputed_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "disposable_earnings_display": {
        +      "type": "string"
        +    },
        +    "disposable_earnings_floored_at_zero": {
        +      "type": "boolean"
        +    },
        +    "disposable_earnings_minor_units": {
        +      "type": "integer"
        +    },
        +    "employee_net_display": {
        +      "type": "string"
        +    },
        +    "employee_net_minor_units": {
        +      "type": "integer"
        +    },
        +    "employee_ref": {
        +      "type": "string"
        +    },
        +    "federal_minimum_wage_display": {
        +      "type": "string"
        +    },
        +    "federal_minimum_wage_minor_units": {
        +      "type": "integer"
        +    },
        +    "federal_minimum_wage_source": {
        +      "properties": {
        +        "dated": {
        +          "type": "string"
        +        },
        +        "kind": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "first_uncapped_shortfall": {
        +      "type": "string"
        +    },
        +    "gross_display": {
        +      "type": "string"
        +    },
        +    "gross_minor_units": {
        +      "type": "integer"
        +    },
        +    "indeterminate_reason": {
        +      "type": "string"
        +    },
        +    "legally_required_deductions": {
        +      "items": {
        +        "properties": {
        +          "amount_display": {
        +            "type": "string"
        +          },
        +          "amount_minor_units": {
        +            "type": "integer"
        +          },
        +          "label": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "minor_unit_exponent": {
        +      "type": "integer"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "noticed_supplied": {
        +      "type": "boolean"
        +    },
        +    "order_count": {
        +      "type": "integer"
        +    },
        +    "orders": {
        +      "items": {
        +        "properties": {
        +          "arrears_over_12wk": {
        +            "type": "boolean"
        +          },
        +          "cap_basis": {
        +            "type": "string"
        +          },
        +          "cap_display": {
        +            "type": "string"
        +          },
        +          "cap_minor_units": {
        +            "type": "integer"
        +          },
        +          "ccpa_capped": {
        +            "type": "boolean"
        +          },
        +          "claimed_amount_minor_units": {
        +            "type": "integer"
        +          },
        +          "claimed_display": {
        +            "type": "string"
        +          },
        +          "fully_withheld": {
        +            "type": "boolean"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "order_id": {
        +            "type": "string"
        +          },
        +          "second_family": {
        +            "type": "boolean"
        +          },
        +          "shortfall_display": {
        +            "type": "string"
        +          },
        +          "shortfall_minor_units": {
        +            "type": "integer"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "withheld_display": {
        +            "type": "string"
        +          },
        +          "withheld_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "period_label": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "state_overlay": {
        +      "properties": {},
        +      "type": "object"
        +    },
        +    "total_deductions_display": {
        +      "type": "string"
        +    },
        +    "total_deductions_minor_units": {
        +      "type": "integer"
        +    },
        +    "total_withheld_display": {
        +      "type": "string"
        +    },
        +    "total_withheld_minor_units": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_lease_schedule_asc842_ifrs161 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "asc842": {
        +      "properties": {
        +        "classification": {
        +          "type": "string"
        +        },
        +        "classification_criteria": {
        +          "properties": {
        +            "major_part_of_economic_life": {
        +              "properties": {
        +                "economic_life_years": {
        +                  "type": "integer"
        +                },
        +                "met": {
        +                  "type": "boolean"
        +                },
        +                "source": {
        +                  "type": "string"
        +                },
        +                "term_years": {
        +                  "type": "number"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "ownership_transfers": {
        +              "properties": {
        +                "met": {
        +                  "type": "boolean"
        +                },
        +                "source": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "purchase_option_reasonably_certain": {
        +              "properties": {
        +                "met": {
        +                  "type": "boolean"
        +                },
        +                "source": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "specialized_asset": {
        +              "properties": {
        +                "met": {
        +                  "type": "boolean"
        +                },
        +                "source": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "substantially_all_of_fair_value": {
        +              "properties": {
        +                "fair_value_minor": {
        +                  "type": "integer"
        +                },
        +                "met": {
        +                  "type": "boolean"
        +                },
        +                "pv_of_payments_minor": {
        +                  "type": "integer"
        +                },
        +                "source": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "initial_lease_liability_minor": {
        +          "type": "integer"
        +        },
        +        "initial_rou_asset_minor": {
        +          "type": "integer"
        +        },
        +        "pv_of_payments_minor": {
        +          "type": "integer"
        +        },
        +        "schedule": {
        +          "items": {
        +            "properties": {
        +              "closing_liability_minor": {
        +                "type": "integer"
        +              },
        +              "date": {
        +                "type": "string"
        +              },
        +              "interest_minor": {
        +                "type": "integer"
        +              },
        +              "opening_liability_minor": {
        +                "type": "integer"
        +              },
        +              "payment_minor": {
        +                "type": "integer"
        +              },
        +              "period_days": {
        +                "type": "integer"
        +              },
        +              "principal_minor": {
        +                "type": "integer"
        +              },
        +              "rou_amortization_minor": {
        +                "type": "integer"
        +              },
        +              "rou_closing_balance_minor": {
        +                "type": "integer"
        +              },
        +              "rou_opening_minor": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "clause_note": {
        +      "type": "string"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "diff": {
        +      "properties": {
        +        "compare_regime": {
        +          "type": "string"
        +        },
        +        "compared_count": {
        +          "type": "integer"
        +        },
        +        "mismatches": {
        +          "type": "array"
        +        },
        +        "requested": {
        +          "type": "boolean"
        +        },
        +        "tolerance_minor": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "elections": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "findings": {
        +      "type": "array"
        +    },
        +    "ifrs16": {
        +      "properties": {
        +        "ifrs16_note": {
        +          "type": "string"
        +        },
        +        "initial_lease_liability_minor": {
        +          "type": "integer"
        +        },
        +        "initial_rou_asset_minor": {
        +          "type": "integer"
        +        },
        +        "pv_of_payments_minor": {
        +          "type": "integer"
        +        },
        +        "schedule": {
        +          "items": {
        +            "properties": {
        +              "closing_liability_minor": {
        +                "type": "integer"
        +              },
        +              "date": {
        +                "type": "string"
        +              },
        +              "interest_minor": {
        +                "type": "integer"
        +              },
        +              "opening_liability_minor": {
        +                "type": "integer"
        +              },
        +              "payment_minor": {
        +                "type": "integer"
        +              },
        +              "period_days": {
        +                "type": "integer"
        +              },
        +              "principal_minor": {
        +                "type": "integer"
        +              },
        +              "rou_amortization_minor": {
        +                "type": "integer"
        +              },
        +              "rou_closing_balance_minor": {
        +                "type": "integer"
        +              },
        +              "rou_opening_minor": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_payment_waterfall1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "asserted_step_count": {
        +      "type": "integer"
        +    },
        +    "available_funds_by_ledger": {
        +      "items": {
        +        "properties": {
        +          "ledger": {
        +            "type": "string"
        +          },
        +          "opening_display": {
        +            "type": "string"
        +          },
        +          "opening_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "basis": {
        +      "properties": {
        +        "basis_id": {
        +          "type": "string"
        +        },
        +        "basis_label": {
        +          "type": "string"
        +        },
        +        "field_set_version": {
        +          "type": "string"
        +        },
        +        "ladder_source": {
        +          "type": "string"
        +        },
        +        "template_conformance_checked": {
        +          "type": "boolean"
        +        },
        +        "template_note": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "citations": {
        +      "properties": {
        +        "investor_diligence": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "investor_report": {
        +          "properties": {
        +            "id": {
        +              "type": "string"
        +            },
        +            "in_force_from": {
        +              "type": "string"
        +            },
        +            "mapped_at": {
        +              "type": "string"
        +            },
        +            "mapped_by": {
        +              "type": "string"
        +            },
        +            "scheme": {
        +              "type": "string"
        +            },
        +            "uri": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "comparison_basis": {
        +      "type": "string"
        +    },
        +    "comparison_state": {
        +      "type": "string"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "deal_ref": {
        +      "type": "string"
        +    },
        +    "diff": {
        +      "items": {
        +        "properties": {
        +          "agrees": {
        +            "type": "boolean"
        +          },
        +          "asserted_display": {
        +            "type": "string"
        +          },
        +          "asserted_minor_units": {
        +            "type": "integer"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "difference_display": {
        +            "type": "string"
        +          },
        +          "difference_minor_units": {
        +            "type": "integer"
        +          },
        +          "in_ladder": {
        +            "type": "boolean"
        +          },
        +          "recomputed_display": {
        +            "type": "string"
        +          },
        +          "recomputed_minor_units": {
        +            "type": "integer"
        +          },
        +          "step_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "first_unfunded_step": {
        +      "type": "string"
        +    },
        +    "ladder_ref": {
        +      "properties": {
        +        "dated": {
        +          "type": "string"
        +        },
        +        "document_ref": {
        +          "type": "string"
        +        },
        +        "section_ref": {
        +          "type": "string"
        +        },
        +        "supplied": {
        +          "type": "boolean"
        +        },
        +        "version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "minor_unit_exponent": {
        +      "type": "integer"
        +    },
        +    "no_template_claim": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "period_label": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "recompute_only_note": {
        +      "type": "string"
        +    },
        +    "recomputed_step_count": {
        +      "type": "integer"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "residual_by_ledger": {
        +      "items": {
        +        "properties": {
        +          "ledger": {
        +            "type": "string"
        +          },
        +          "opening_display": {
        +            "type": "string"
        +          },
        +          "opening_minor_units": {
        +            "type": "integer"
        +          },
        +          "residual_display": {
        +            "type": "string"
        +          },
        +          "residual_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "residual_display": {
        +      "type": "string"
        +    },
        +    "residual_minor_units": {
        +      "type": "integer"
        +    },
        +    "step_count": {
        +      "type": "integer"
        +    },
        +    "steps": {
        +      "items": {
        +        "properties": {
        +          "amount_source": {
        +            "type": "string"
        +          },
        +          "basis": {
        +            "type": "string"
        +          },
        +          "cap_applied": {
        +            "type": "boolean"
        +          },
        +          "cap_display": {
        +            "type": "string"
        +          },
        +          "cap_minor_units": {
        +            "type": "string"
        +          },
        +          "claim_display": {
        +            "type": "string"
        +          },
        +          "claim_minor_units": {
        +            "type": "integer"
        +          },
        +          "due_display": {
        +            "type": "string"
        +          },
        +          "due_minor_units": {
        +            "type": "integer"
        +          },
        +          "fully_paid": {
        +            "type": "boolean"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "ledger": {
        +            "type": "string"
        +          },
        +          "ledger_supplied": {
        +            "type": "boolean"
        +          },
        +          "paid_display": {
        +            "type": "string"
        +          },
        +          "paid_minor_units": {
        +            "type": "integer"
        +          },
        +          "position": {
        +            "type": "integer"
        +          },
        +          "shortfall_display": {
        +            "type": "string"
        +          },
        +          "shortfall_minor_units": {
        +            "type": "integer"
        +          },
        +          "step_id": {
        +            "type": "string"
        +          },
        +          "suppressed_by_test": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "test_results": {
        +      "items": {
        +        "properties": {
        +          "basis": {
        +            "type": "string"
        +          },
        +          "basis_detail": {
        +            "type": "string"
        +          },
        +          "comparator": {
        +            "type": "string"
        +          },
        +          "divert_applied": {
        +            "type": "boolean"
        +          },
        +          "divert_declared": {
        +            "type": "boolean"
        +          },
        +          "divert_description": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "measured": {
        +            "properties": {
        +              "denominator": {
        +                "type": "integer"
        +              },
        +              "form": {
        +                "type": "string"
        +              },
        +              "numerator": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "outcome": {
        +            "type": "string"
        +          },
        +          "suppress_step_ids": {
        +            "type": "array"
        +          },
        +          "test_id": {
        +            "type": "string"
        +          },
        +          "threshold": {
        +            "properties": {
        +              "denominator": {
        +                "type": "integer"
        +              },
        +              "form": {
        +                "type": "string"
        +              },
        +              "numerator": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_available_display": {
        +      "type": "string"
        +    },
        +    "total_available_minor_units": {
        +      "type": "integer"
        +    },
        +    "total_paid_display": {
        +      "type": "string"
        +    },
        +    "total_paid_minor_units": {
        +      "type": "integer"
        +    },
        +    "total_shortfall_display": {
        +      "type": "string"
        +    },
        +    "total_shortfall_minor_units": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_pe_waterfall_lp1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "clawback": {
        +      "properties": {
        +        "clawback_amount": {
        +          "type": "string"
        +        },
        +        "clawback_flag_declared": {
        +          "type": "boolean"
        +        },
        +        "gp_carry_and_catchup_received": {
        +          "type": "string"
        +        },
        +        "gp_entitled_at_carry_pct": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "total_realized_profit": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "deal_id": {
        +      "type": "string"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "fund_id": {
        +      "type": "string"
        +    },
        +    "gp_reported_allocation": {
        +      "properties": {
        +        "tiers": {
        +          "items": {
        +            "properties": {
        +              "gp_amount": {
        +                "type": "integer"
        +              },
        +              "lp_amount": {
        +                "type": "integer"
        +              },
        +              "tier": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ilpa_context": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "per_deal": {
        +      "type": "string"
        +    },
        +    "recomputed_allocation": {
        +      "items": {
        +        "properties": {
        +          "gp_amount": {
        +            "type": "string"
        +          },
        +          "lp_amount": {
        +            "type": "string"
        +          },
        +          "tier": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "tier_deltas": {
        +      "items": {
        +        "properties": {
        +          "gp_delta": {
        +            "type": "string"
        +          },
        +          "gp_reported_gp_amount": {
        +            "type": "string"
        +          },
        +          "gp_reported_lp_amount": {
        +            "type": "string"
        +          },
        +          "lp_delta": {
        +            "type": "string"
        +          },
        +          "matches": {
        +            "type": "boolean"
        +          },
        +          "recomputed_gp_amount": {
        +            "type": "string"
        +          },
        +          "recomputed_lp_amount": {
        +            "type": "string"
        +          },
        +          "tier": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "tier_structure": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "waterfall": {
        +      "properties": {
        +        "carry_pct": {
        +          "type": "number"
        +        },
        +        "compounding_basis": {
        +          "type": "string"
        +        },
        +        "day_count_convention": {
        +          "type": "string"
        +        },
        +        "gp_catchup_pct": {
        +          "type": "integer"
        +        },
        +        "pref_rate": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_section16b_profit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "citations": {
        +      "properties": {
        +        "hfiaa": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "rule_16b3": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "rule_3a12_3": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "section_16a_general": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "section_16b": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "smolowe_maximal_recovery": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "comparison_basis": {
        +      "type": "string"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "demand_letter_claimed_profit_display": {
        +      "type": "string"
        +    },
        +    "demand_letter_claimed_profit_minor_units": {
        +      "type": "integer"
        +    },
        +    "demand_letter_supplied": {
        +      "type": "boolean"
        +    },
        +    "difference_display": {
        +      "type": "string"
        +    },
        +    "difference_minor_units": {
        +      "type": "integer"
        +    },
        +    "excluded_transactions": {
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "indeterminate_reason": {
        +      "type": "string"
        +    },
        +    "insider_ref": {
        +      "type": "string"
        +    },
        +    "insider_status": {
        +      "properties": {
        +        "foreign_private_issuer": {
        +          "type": "boolean"
        +        },
        +        "officer_or_director": {
        +          "type": "boolean"
        +        },
        +        "ten_pct_owner": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "issuer_ref": {
        +      "type": "string"
        +    },
        +    "matched_pairs": {
        +      "items": {
        +        "properties": {
        +          "day_gap": {
        +            "type": "integer"
        +          },
        +          "profit_display": {
        +            "type": "string"
        +          },
        +          "profit_minor_units": {
        +            "type": "integer"
        +          },
        +          "purchase_date": {
        +            "type": "string"
        +          },
        +          "purchase_price_display": {
        +            "type": "string"
        +          },
        +          "purchase_price_minor_units": {
        +            "type": "integer"
        +          },
        +          "purchase_txn_id": {
        +            "type": "string"
        +          },
        +          "sale_date": {
        +            "type": "string"
        +          },
        +          "sale_price_display": {
        +            "type": "string"
        +          },
        +          "sale_price_minor_units": {
        +            "type": "integer"
        +          },
        +          "sale_txn_id": {
        +            "type": "string"
        +          },
        +          "shares_matched": {
        +            "type": "integer"
        +          },
        +          "window_basis": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "minor_unit_exponent": {
        +      "type": "integer"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "purchase_count": {
        +      "type": "integer"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "sale_count": {
        +      "type": "integer"
        +    },
        +    "section_16a_applicability": {
        +      "properties": {
        +        "basis": {
        +          "type": "string"
        +        },
        +        "is_16a_filer": {
        +          "type": "boolean"
        +        },
        +        "is_16b_liable": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "six_month_window_day_threshold": {
        +      "type": "integer"
        +    },
        +    "total_profit_display": {
        +      "type": "string"
        +    },
        +    "total_profit_minor_units": {
        +      "type": "integer"
        +    },
        +    "transaction_count": {
        +      "type": "integer"
        +    },
        +    "unmatched_purchase_shares": {
        +      "type": "integer"
        +    },
        +    "unmatched_sale_shares": {
        +      "type": "integer"
        +    },
        +    "usable_transaction_count": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_stock_loan_rebate_fee1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "clause_note": {
        +      "type": "string"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "diff_tolerance_minor": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "type": "array"
        +    },
        +    "loan_count": {
        +      "type": "integer"
        +    },
        +    "loans": {
        +      "items": {
        +        "properties": {
        +          "basis": {
        +            "type": "string"
        +          },
        +          "collateral_breach_count": {
        +            "type": "integer"
        +          },
        +          "computed_total_minor": {
        +            "type": "integer"
        +          },
        +          "daily_marks": {
        +            "items": {
        +              "properties": {
        +                "collateral_value_minor": {
        +                  "type": "integer"
        +                },
        +                "daily_net_minor": {
        +                  "type": "integer"
        +                },
        +                "date": {
        +                  "type": "string"
        +                },
        +                "loaned_market_value_minor": {
        +                  "type": "integer"
        +                },
        +                "mark_ok": {
        +                  "type": "boolean"
        +                },
        +                "required_collateral_minor": {
        +                  "type": "integer"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "day_count": {
        +            "type": "integer"
        +          },
        +          "diff_minor": {
        +            "type": "integer"
        +          },
        +          "loan_id": {
        +            "type": "string"
        +          },
        +          "matches": {
        +            "type": "boolean"
        +          },
        +          "statement_amount_minor": {
        +            "type": "integer"
        +          },
        +          "worst_breach_date": {
        +            "type": "string"
        +          },
        +          "worst_shortfall_minor": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "required_margin_pct": {
        +      "type": "integer"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "statement_period": {
        +      "properties": {
        +        "end_date": {
        +          "type": "string"
        +        },
        +        "start_date": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_tmpg_fails_charge1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "clause_note": {
        +      "type": "string"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "determinations": {
        +      "items": {
        +        "properties": {
        +          "claimed_charge_minor": {
        +            "type": "integer"
        +          },
        +          "days_failed": {
        +            "type": "integer"
        +          },
        +          "delta_minor": {
        +            "type": "integer"
        +          },
        +          "fail_id": {
        +            "type": "string"
        +          },
        +          "par_amount_minor": {
        +            "type": "integer"
        +          },
        +          "rate_diff_bps": {
        +            "type": "integer"
        +          },
        +          "recomputed_charge_minor": {
        +            "type": "integer"
        +          },
        +          "reference_rate_bps": {
        +            "type": "integer"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "diff_tolerance_minor": {
        +      "type": "integer"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "total_claimed_charge_minor": {
        +      "type": "integer"
        +    },
        +    "total_recomputed_charge_minor": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecompute_trustee_report_waterfall1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "citations": {
        +      "properties": {
        +        "governing_document": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "mechanics_reference": {
        +          "properties": {
        +            "detail": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "collections_by_type": {
        +      "items": {
        +        "properties": {
        +          "collection_type": {
        +            "type": "string"
        +          },
        +          "opening_display": {
        +            "type": "string"
        +          },
        +          "opening_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "comparison_basis": {
        +      "type": "string"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "deal_ref": {
        +      "type": "string"
        +    },
        +    "diff": {
        +      "items": {
        +        "properties": {
        +          "agrees": {
        +            "type": "boolean"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "difference_display": {
        +            "type": "string"
        +          },
        +          "difference_minor_units": {
        +            "type": "integer"
        +          },
        +          "in_tier_list": {
        +            "type": "boolean"
        +          },
        +          "recomputed_display": {
        +            "type": "string"
        +          },
        +          "recomputed_minor_units": {
        +            "type": "integer"
        +          },
        +          "reported_display": {
        +            "type": "string"
        +          },
        +          "reported_minor_units": {
        +            "type": "integer"
        +          },
        +          "tier_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "first_unfunded_tier": {
        +      "type": "string"
        +    },
        +    "indenture_ref": {
        +      "properties": {
        +        "dated": {
        +          "type": "string"
        +        },
        +        "document_ref": {
        +          "type": "string"
        +        },
        +        "section_ref": {
        +          "type": "string"
        +        },
        +        "supplied": {
        +          "type": "boolean"
        +        },
        +        "version": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "indeterminate_reason": {
        +      "type": "string"
        +    },
        +    "minor_unit_exponent": {
        +      "type": "integer"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "period_label": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "residual_by_type": {
        +      "items": {
        +        "properties": {
        +          "collection_type": {
        +            "type": "string"
        +          },
        +          "opening_display": {
        +            "type": "string"
        +          },
        +          "opening_minor_units": {
        +            "type": "integer"
        +          },
        +          "residual_display": {
        +            "type": "string"
        +          },
        +          "residual_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "residual_display": {
        +      "type": "string"
        +    },
        +    "residual_minor_units": {
        +      "type": "integer"
        +    },
        +    "skipped_tier_count": {
        +      "type": "integer"
        +    },
        +    "tier_count": {
        +      "type": "integer"
        +    },
        +    "tiers": {
        +      "items": {
        +        "properties": {
        +          "basis": {
        +            "type": "string"
        +          },
        +          "cap_applied": {
        +            "type": "boolean"
        +          },
        +          "cap_display": {
        +            "type": "string"
        +          },
        +          "cap_minor_units": {
        +            "type": "string"
        +          },
        +          "claim_display": {
        +            "type": "string"
        +          },
        +          "claim_minor_units": {
        +            "type": "integer"
        +          },
        +          "collection_type": {
        +            "type": "string"
        +          },
        +          "collection_type_supplied": {
        +            "type": "boolean"
        +          },
        +          "due_display": {
        +            "type": "string"
        +          },
        +          "due_minor_units": {
        +            "type": "integer"
        +          },
        +          "fully_paid": {
        +            "type": "boolean"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "paid_display": {
        +            "type": "string"
        +          },
        +          "paid_minor_units": {
        +            "type": "integer"
        +          },
        +          "position": {
        +            "type": "integer"
        +          },
        +          "shortfall_display": {
        +            "type": "string"
        +          },
        +          "shortfall_minor_units": {
        +            "type": "integer"
        +          },
        +          "skipped_by_trigger": {
        +            "type": "string"
        +          },
        +          "tier_id": {
        +            "type": "string"
        +          },
        +          "trigger_id": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_collections_display": {
        +      "type": "string"
        +    },
        +    "total_collections_minor_units": {
        +      "type": "integer"
        +    },
        +    "total_paid_display": {
        +      "type": "string"
        +    },
        +    "total_paid_minor_units": {
        +      "type": "integer"
        +    },
        +    "total_shortfall_display": {
        +      "type": "string"
        +    },
        +    "total_shortfall_minor_units": {
        +      "type": "integer"
        +    },
        +    "triggers_evaluated": {
        +      "items": {
        +        "properties": {
        +          "basis": {
        +            "type": "string"
        +          },
        +          "breached": {
        +            "type": "boolean"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "trigger_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "trustee_reported_supplied": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedreconcile_aml_lookback_completeness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "gap_periods": {
        +      "type": "array"
        +    },
        +    "lookback_status": {
        +      "type": "string"
        +    },
        +    "overall_coverage_pct": {
        +      "type": "integer"
        +    },
        +    "period_count": {
        +      "type": "integer"
        +    },
        +    "periods": {
        +      "items": {
        +        "properties": {
        +          "coverage_pct": {
        +            "type": "integer"
        +          },
        +          "dedup_record_count": {
        +            "type": "integer"
        +          },
        +          "duplicate_count": {
        +            "type": "integer"
        +          },
        +          "extract_record_count": {
        +            "type": "integer"
        +          },
        +          "gap_count": {
        +            "type": "integer"
        +          },
        +          "period_label": {
        +            "type": "string"
        +          },
        +          "period_status": {
        +            "type": "string"
        +          },
        +          "snapshot_available": {
        +            "type": "boolean"
        +          },
        +          "source_record_count": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_duplicate_count": {
        +      "type": "integer"
        +    },
        +    "total_extract_record_count": {
        +      "type": "integer"
        +    },
        +    "total_source_record_count": {
        +      "type": "integer"
        +    },
        +    "unverifiable_periods": {
        +      "type": "array"
        +    },
        +    "verifiable_extract_count": {
        +      "type": "integer"
        +    },
        +    "verifiable_source_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedreconcile_commission_statement1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "discrepancy_amount": {
        +      "type": "integer"
        +    },
        +    "discrepancy_classification": {
        +      "type": "string"
        +    },
        +    "discrepancy_pct": {
        +      "type": "integer"
        +    },
        +    "has_discrepancy": {
        +      "type": "boolean"
        +    },
        +    "line_count": {
        +      "type": "integer"
        +    },
        +    "line_results": {
        +      "items": {
        +        "properties": {
        +          "agent_id": {
        +            "type": "string"
        +          },
        +          "commission_rate_pct": {
        +            "type": "integer"
        +          },
        +          "discrepancy_amount": {
        +            "type": "integer"
        +          },
        +          "discrepancy_pct": {
        +            "type": "integer"
        +          },
        +          "discrepancy_type": {
        +            "type": "string"
        +          },
        +          "expected_commission": {
        +            "type": "integer"
        +          },
        +          "gross_premium": {
        +            "type": "integer"
        +          },
        +          "split_pct": {
        +            "type": "integer"
        +          },
        +          "stated_commission": {
        +            "type": "integer"
        +          },
        +          "within_tolerance": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "tolerance_pct": {
        +      "type": "integer"
        +    },
        +    "total_expected": {
        +      "type": "integer"
        +    },
        +    "total_stated": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedreconcile_erc8056_multiplier1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "computed_ratio": {
        +      "type": "integer"
        +    },
        +    "declared_action_type": {
        +      "type": "string"
        +    },
        +    "discrepancies": {
        +      "type": "array"
        +    },
        +    "event_count": {
        +      "type": "integer"
        +    },
        +    "expected_ratio": {
        +      "type": "integer"
        +    },
        +    "ratio_match": {
        +      "type": "boolean"
        +    },
        +    "raw_balance_invariant": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedreconcile_mpp_subscription1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "breaches": {
        +      "type": "array"
        +    },
        +    "cumulative_ok": {
        +      "type": "boolean"
        +    },
        +    "cycles_ok": {
        +      "type": "boolean"
        +    },
        +    "draw_count": {
        +      "type": "integer"
        +    },
        +    "draw_merkle_root": {
        +      "type": "string"
        +    },
        +    "residual_envelope": {
        +      "type": "integer"
        +    },
        +    "total_drawn": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedreconcile_sii_ifrs171 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "bel_fcf_delta": {
        +      "type": "integer"
        +    },
        +    "bridge_delta": {
        +      "type": "integer"
        +    },
        +    "bridge_within_tolerance": {
        +      "type": "boolean"
        +    },
        +    "ifrs17_csm": {
        +      "type": "integer"
        +    },
        +    "ifrs17_fcf": {
        +      "type": "integer"
        +    },
        +    "ifrs17_insurance_contract_liabilities": {
        +      "type": "integer"
        +    },
        +    "ifrs17_ra": {
        +      "type": "integer"
        +    },
        +    "ra_vs_risk_margin_ratio_pct": {
        +      "type": "integer"
        +    },
        +    "relative_bridge_delta_pct": {
        +      "type": "number"
        +    },
        +    "rm_ra_delta": {
        +      "type": "integer"
        +    },
        +    "sii_best_estimate": {
        +      "type": "integer"
        +    },
        +    "sii_risk_margin": {
        +      "type": "integer"
        +    },
        +    "sii_technical_provisions": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedreconcile_x402_batch_settlement1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "batch_delta_minor_units": {
        +      "type": "integer"
        +    },
        +    "batch_id": {
        +      "type": "string"
        +    },
        +    "escrow_address": {
        +      "type": "string"
        +    },
        +    "merkle_root_preimage": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "recon_verdict": {
        +      "type": "string"
        +    },
        +    "redeemed_count": {
        +      "type": "integer"
        +    },
        +    "redeemed_total": {
        +      "type": "integer"
        +    },
        +    "settlement_asset": {
        +      "type": "string"
        +    },
        +    "settlement_risk_window": {
        +      "type": "integer"
        +    },
        +    "status_asof": {
        +      "type": "string"
        +    },
        +    "unredeemed_value": {
        +      "type": "integer"
        +    },
        +    "voucher_count": {
        +      "type": "integer"
        +    },
        +    "voucher_findings": {
        +      "type": "array"
        +    },
        +    "within_tolerance": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecord_fund_positions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "disclosure_note": {
        +      "type": "string"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "fund_id": {
        +      "type": "string"
        +    },
        +    "holding_count": {
        +      "type": "integer"
        +    },
        +    "holdings": {
        +      "items": {
        +        "properties": {
        +          "currency": {
        +            "type": "string"
        +          },
        +          "quantity": {
        +            "type": "integer"
        +          },
        +          "security_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "shares_outstanding": {
        +      "type": "integer"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    },
        +    "valuation_date": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecord_index_constituents1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "constituent_count": {
        +      "type": "integer"
        +    },
        +    "constituents": {
        +      "items": {
        +        "properties": {
        +          "country": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "sector": {
        +            "type": "string"
        +          },
        +          "security_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "eligibility_criteria_ref": {
        +      "type": "string"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "index_id": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "selection_universe_size": {
        +      "type": "integer"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrecord_model_input_lineage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "attribute_count": {
        +      "type": "integer"
        +    },
        +    "attributes": {
        +      "items": {
        +        "properties": {
        +          "field_name": {
        +            "type": "string"
        +          },
        +          "sensitivity_tier": {
        +            "type": "string"
        +          },
        +          "source_field": {
        +            "type": "string"
        +          },
        +          "source_system": {
        +            "type": "string"
        +          },
        +          "transformation_applied": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "model_id": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "run_ref": {
        +      "properties": {
        +        "execution_hash": {
        +          "type": "string"
        +        },
        +        "tool_id": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    },
        +    "unmapped_attribute_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedregister_mra_remediation_closure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "closed_count": {
        +      "type": "integer"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "determinations": {
        +      "items": {
        +        "properties": {
        +          "closure_status": {
        +            "type": "string"
        +          },
        +          "commitment_text": {
        +            "type": "string"
        +          },
        +          "committed_date": {
        +            "type": "string"
        +          },
        +          "decision": {
        +            "type": "string"
        +          },
        +          "ha_note": {
        +            "type": "string"
        +          },
        +          "issue_id": {
        +            "type": "string"
        +          },
        +          "milestones": {
        +            "items": {
        +              "properties": {
        +                "closed_at": {
        +                  "type": "string"
        +                },
        +                "description": {
        +                  "type": "string"
        +                },
        +                "evidence": {
        +                  "items": {
        +                    "properties": {
        +                      "evidence_id": {
        +                        "type": "string"
        +                      },
        +                      "evidence_type": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "milestone_id": {
        +                  "type": "string"
        +                },
        +                "milestone_status": {
        +                  "type": "string"
        +                },
        +                "required_evidence_type": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "milestones_total": {
        +            "type": "integer"
        +          },
        +          "milestones_valid_count": {
        +            "type": "integer"
        +          },
        +          "overdue_days": {
        +            "type": "integer"
        +          },
        +          "root_cause_identified": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "evaluated_at": {
        +      "type": "string"
        +    },
        +    "issue_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "open_count": {
        +      "type": "integer"
        +    },
        +    "overdue_count": {
        +      "type": "integer"
        +    },
        +    "overdue_grace_days": {
        +      "type": "integer"
        +    },
        +    "register_id": {
        +      "type": "string"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedreplay_supervisory_scenario1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ending_capital_mn": {
        +      "type": "number"
        +    },
        +    "not_a_submission": {
        +      "type": "string"
        +    },
        +    "quarters": {
        +      "items": {
        +        "properties": {
        +          "capital_mn": {
        +            "type": "number"
        +          },
        +          "capital_ratio_pct": {
        +            "type": "number"
        +          },
        +          "date": {
        +            "type": "string"
        +          },
        +          "loss_mn": {
        +            "type": "integer"
        +          },
        +          "net_income_mn": {
        +            "type": "number"
        +          },
        +          "ppnr_mn": {
        +            "type": "number"
        +          },
        +          "pretax_income_mn": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "scenario": {
        +      "type": "string"
        +    },
        +    "scenario_release_date": {
        +      "type": "string"
        +    },
        +    "scenario_set_digest": {
        +      "type": "string"
        +    },
        +    "scenario_source_url": {
        +      "type": "string"
        +    },
        +    "starting_capital_mn": {
        +      "type": "integer"
        +    },
        +    "trough_capital_mn": {
        +      "type": "integer"
        +    },
        +    "trough_capital_ratio_pct": {
        +      "type": "number"
        +    },
        +    "trough_quarter": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedreplicate_model_outputs1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregate": {
        +      "properties": {
        +        "count_computed": {
        +          "type": "integer"
        +        },
        +        "count_out_of_tolerance": {
        +          "type": "integer"
        +        },
        +        "count_total": {
        +          "type": "integer"
        +        },
        +        "max_abs_diff": {
        +          "type": "number"
        +        },
        +        "mean_abs_diff": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "failing_segments": {
        +      "type": "array"
        +    },
        +    "model_spec_as_of_date": {
        +      "type": "string"
        +    },
        +    "model_spec_version": {
        +      "type": "string"
        +    },
        +    "per_record": {
        +      "items": {
        +        "properties": {
        +          "abs_diff": {
        +            "type": "integer"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "recomputed_value": {
        +            "type": "integer"
        +          },
        +          "rel_diff": {
        +            "type": "integer"
        +          },
        +          "reported_value": {
        +            "type": "integer"
        +          },
        +          "segment": {
        +            "type": "string"
        +          },
        +          "within_tolerance": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "tolerance_applied": {
        +      "properties": {
        +        "abs_tolerance": {
        +          "type": "number"
        +        },
        +        "rel_tolerance": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "transform": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedresolve_cbam_default_value1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "actual_path_recommended": {
        +      "type": "boolean"
        +    },
        +    "cn_code": {
        +      "type": "string"
        +    },
        +    "country_of_origin": {
        +      "type": "string"
        +    },
        +    "default_value_tco2e_per_t": {
        +      "type": "number"
        +    },
        +    "effective_default": {
        +      "type": "number"
        +    },
        +    "good_category": {
        +      "type": "string"
        +    },
        +    "markup_pct": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "provenance": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "reporting_year": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedresolve_recall_trace1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "contaminated_tlc": {
        +      "type": "string"
        +    },
        +    "recipients": {
        +      "items": {
        +        "properties": {
        +          "date": {
        +            "type": "string"
        +          },
        +          "gln": {
        +            "type": "string"
        +          },
        +          "tlc": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "sources": {
        +      "items": {
        +        "properties": {
        +          "date": {
        +            "type": "string"
        +          },
        +          "gln": {
        +            "type": "string"
        +          },
        +          "tlc": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "traced_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedroll_up_aml_lookback_disposition1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "disposition_coverage_pct": {
        +      "type": "integer"
        +    },
        +    "items": {
        +      "items": {
        +        "properties": {
        +          "disposition": {
        +            "type": "string"
        +          },
        +          "has_rationale_reference": {
        +            "type": "boolean"
        +          },
        +          "identity_ok": {
        +            "type": "boolean"
        +          },
        +          "index": {
        +            "type": "integer"
        +          },
        +          "rationale_ok": {
        +            "type": "boolean"
        +          },
        +          "rationale_required": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "items_missing_rationale": {
        +      "type": "array"
        +    },
        +    "lookback_close_date": {
        +      "type": "string"
        +    },
        +    "lookback_id": {
        +      "type": "string"
        +    },
        +    "missing_disposition_count": {
        +      "type": "integer"
        +    },
        +    "population_size": {
        +      "type": "integer"
        +    },
        +    "population_tie_out_holds": {
        +      "type": "boolean"
        +    },
        +    "rationale_presence_pct": {
        +      "type": "integer"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "sample_frame_population_size": {
        +      "type": "integer"
        +    },
        +    "sample_frame_size": {
        +      "type": "integer"
        +    },
        +    "sampled_item_count": {
        +      "type": "integer"
        +    },
        +    "sampling_frame_discrepancy_flag": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrollforward_y14_capital_worksheet1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "boundary_note": {
        +      "type": "string"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "cross_check": {
        +      "properties": {
        +        "delta_usd": {
        +          "type": "integer"
        +        },
        +        "pass": {
        +          "type": "boolean"
        +        },
        +        "reported_total_capital_usd": {
        +          "type": "integer"
        +        },
        +        "tolerance_usd": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ending_tier1_capital_usd": {
        +      "type": "integer"
        +    },
        +    "ending_total_capital_usd": {
        +      "type": "integer"
        +    },
        +    "entity_id": {
        +      "type": "string"
        +    },
        +    "published_scenario": {
        +      "properties": {
        +        "citation": {
        +          "type": "string"
        +        },
        +        "name": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "report_form": {
        +      "type": "string"
        +    },
        +    "reporting_period": {
        +      "type": "string"
        +    },
        +    "rollforward": {
        +      "properties": {
        +        "at1": {
        +          "properties": {
        +            "additions_usd": {
        +              "type": "integer"
        +            },
        +            "beginning_usd": {
        +              "type": "integer"
        +            },
        +            "deductions_usd": {
        +              "type": "integer"
        +            },
        +            "ending_usd": {
        +              "type": "integer"
        +            },
        +            "scenario_adjustment_usd": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "cet1": {
        +          "properties": {
        +            "additions_usd": {
        +              "type": "integer"
        +            },
        +            "beginning_usd": {
        +              "type": "integer"
        +            },
        +            "deductions_usd": {
        +              "type": "integer"
        +            },
        +            "ending_usd": {
        +              "type": "integer"
        +            },
        +            "scenario_adjustment_usd": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "t2": {
        +          "properties": {
        +            "additions_usd": {
        +              "type": "integer"
        +            },
        +            "beginning_usd": {
        +              "type": "integer"
        +            },
        +            "deductions_usd": {
        +              "type": "integer"
        +            },
        +            "ending_usd": {
        +              "type": "integer"
        +            },
        +            "scenario_adjustment_usd": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "worksheet": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedroute_einvoice_jurisdiction_mandate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "applicable_format": {
        +      "type": "string"
        +    },
        +    "mandatory_from": {
        +      "type": "string"
        +    },
        +    "phase_status": {
        +      "type": "string"
        +    },
        +    "regime_country": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "transmission_channel": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedroute_partner_stablecoin_jurisdiction1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "disclosure_gaps": {
        +      "type": "array"
        +    },
        +    "leg_regimes": {
        +      "items": {
        +        "properties": {
        +          "ccy": {
        +            "type": "string"
        +          },
        +          "ccy_pair": {
        +            "type": "string"
        +          },
        +          "disclosures_required": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "notional": {
        +            "type": "integer"
        +          },
        +          "regime": {
        +            "type": "string"
        +          },
        +          "regulator": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "pvp_handoff": {
        +      "properties": {
        +        "leg_count": {
        +          "type": "integer"
        +        },
        +        "regimes": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "tool": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "travel_rule_handoff": {
        +      "properties": {
        +        "currencies": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "leg_count": {
        +          "type": "integer"
        +        },
        +        "tool": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_401k_adp_acp_test1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "acp": {
        +      "properties": {
        +        "allowed_max_pct": {
        +          "type": "number"
        +        },
        +        "computed": {
        +          "type": "boolean"
        +        },
        +        "excess_pct": {
        +          "type": "integer"
        +        },
        +        "hce_pct": {
        +          "type": "number"
        +        },
        +        "nhce_pct": {
        +          "type": "number"
        +        },
        +        "pass": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "adp": {
        +      "properties": {
        +        "allowed_max_pct": {
        +          "type": "number"
        +        },
        +        "computed": {
        +          "type": "boolean"
        +        },
        +        "excess_pct": {
        +          "type": "integer"
        +        },
        +        "hce_pct": {
        +          "type": "number"
        +        },
        +        "nhce_pct": {
        +          "type": "number"
        +        },
        +        "pass": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "all_tests_pass": {
        +      "type": "boolean"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "method": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_agent_economy_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dim_scores": {
        +      "properties": {
        +        "autonomy": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "metering": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "rail": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "receipt": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "recon": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "risk": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "hnp_risk_flag": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_grade": {
        +      "type": "string"
        +    },
        +    "overall_score": {
        +      "type": "integer"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "remediation_checklist": {
        +      "items": {
        +        "properties": {
        +          "action": {
        +            "type": "string"
        +          },
        +          "dimension": {
        +            "type": "string"
        +          },
        +          "grade": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "secondary_recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_ai_act_highrisk_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ai_literacy_grade": {
        +      "type": "string"
        +    },
        +    "annex_iii_basis": {
        +      "type": "string"
        +    },
        +    "applicable_date": {
        +      "properties": {
        +        "digital_omnibus_date": {
        +          "type": "string"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "original_date": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "dim_scores": {
        +      "properties": {
        +        "articles_9_15": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "classification": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "deployer": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "gpai": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "literacy": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "maturity": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "prohibited": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "role": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "do_now_checklist": {
        +      "items": {
        +        "properties": {
        +          "action": {
        +            "type": "string"
        +          },
        +          "obligation": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "gpai_applicability": {
        +      "type": "string"
        +    },
        +    "high_risk_verdict": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_grade": {
        +      "type": "string"
        +    },
        +    "overall_score": {
        +      "type": "number"
        +    },
        +    "prepare_ahead_checklist": {
        +      "type": "array"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "prohibited_practice_verdict": {
        +      "type": "string"
        +    },
        +    "role": {
        +      "type": "string"
        +    },
        +    "secondary_recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_ai_governance_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dimensions_met": {
        +      "type": "integer"
        +    },
        +    "dimensions_total": {
        +      "type": "integer"
        +    },
        +    "frameworks_addressed": {
        +      "properties": {
        +        "eu_ai_act": {
        +          "type": "boolean"
        +        },
        +        "iso_42001": {
        +          "type": "boolean"
        +        },
        +        "nist_rmf": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "fully_ready": {
        +      "type": "boolean"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "readiness_grade": {
        +      "type": "string"
        +    },
        +    "readiness_score": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_audit_recalc_suite1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "amortization": {
        +      "items": {
        +        "properties": {
        +          "client_reported_amortization": {
        +            "type": "integer"
        +          },
        +          "flagged": {
        +            "type": "boolean"
        +          },
        +          "item_id": {
        +            "type": "string"
        +          },
        +          "periods_total": {
        +            "type": "integer"
        +          },
        +          "recalculated_amortization": {
        +            "type": "integer"
        +          },
        +          "variance": {
        +            "type": "integer"
        +          },
        +          "variance_pct": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "categories_run": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "depreciation": {
        +      "items": {
        +        "properties": {
        +          "asset_id": {
        +            "type": "string"
        +          },
        +          "client_reported_depreciation": {
        +            "type": "integer"
        +          },
        +          "flagged": {
        +            "type": "boolean"
        +          },
        +          "method": {
        +            "type": "string"
        +          },
        +          "period_number": {
        +            "type": "integer"
        +          },
        +          "recalculated_depreciation": {
        +            "type": "integer"
        +          },
        +          "variance": {
        +            "type": "integer"
        +          },
        +          "variance_pct": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "eps": {
        +      "items": {
        +        "properties": {
        +          "client_reported_eps_basic": {
        +            "type": "number"
        +          },
        +          "client_reported_eps_diluted": {
        +            "type": "number"
        +          },
        +          "flagged": {
        +            "type": "boolean"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "recalculated_eps_basic": {
        +            "type": "number"
        +          },
        +          "recalculated_eps_diluted": {
        +            "type": "number"
        +          },
        +          "variance_basic": {
        +            "type": "integer"
        +          },
        +          "variance_diluted": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "flagged_count": {
        +      "type": "integer"
        +    },
        +    "interest_accrual": {
        +      "items": {
        +        "properties": {
        +          "client_reported_interest": {
        +            "type": "integer"
        +          },
        +          "day_count_basis": {
        +            "type": "string"
        +          },
        +          "flagged": {
        +            "type": "boolean"
        +          },
        +          "item_id": {
        +            "type": "string"
        +          },
        +          "recalculated_interest": {
        +            "type": "integer"
        +          },
        +          "variance": {
        +            "type": "integer"
        +          },
        +          "variance_pct": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "prepaid_rollforward": {
        +      "items": {
        +        "properties": {
        +          "client_reported_ending_balance": {
        +            "type": "integer"
        +          },
        +          "flagged": {
        +            "type": "boolean"
        +          },
        +          "item_id": {
        +            "type": "string"
        +          },
        +          "recalculated_ending_balance": {
        +            "type": "integer"
        +          },
        +          "variance": {
        +            "type": "integer"
        +          },
        +          "variance_pct": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "tolerance_used": {
        +      "properties": {
        +        "abs": {
        +          "type": "integer"
        +        },
        +        "declared_by_caller": {
        +          "type": "boolean"
        +        },
        +        "pct": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "total_items": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_carbon_compliance_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cbam_declarant_required": {
        +      "type": "boolean"
        +    },
        +    "cbam_declarant_verdict": {
        +      "type": "string"
        +    },
        +    "cbam_dual_status": {
        +      "properties": {
        +        "downstream_scope": {
        +          "type": "string"
        +        },
        +        "first_declaration": {
        +          "type": "string"
        +        },
        +        "in_force": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "climate_stress_applicable": {
        +      "type": "string"
        +    },
        +    "dim_scores": {
        +      "properties": {
        +        "cbam": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "climate": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "eugb": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "taxonomy": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "do_now_checklist": {
        +      "type": "array"
        +    },
        +    "eugb_readiness": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_grade": {
        +      "type": "string"
        +    },
        +    "overall_score": {
        +      "type": "number"
        +    },
        +    "prepare_ahead_checklist": {
        +      "type": "array"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "secondary_recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "taxonomy_scope": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_digital_trade_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "corridor_enforceability_flag": {
        +      "type": "string"
        +    },
        +    "dim_scores": {
        +      "properties": {
        +        "aml": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "digitisation": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "financing": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "legality": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "platform": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "rules": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_grade": {
        +      "type": "string"
        +    },
        +    "overall_score": {
        +      "type": "integer"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "remediation_checklist": {
        +      "items": {
        +        "properties": {
        +          "action": {
        +            "type": "string"
        +          },
        +          "dimension": {
        +            "type": "string"
        +          },
        +          "grade": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "secondary_recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_dora_readiness_diagnostic1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_answered": {
        +      "type": "boolean"
        +    },
        +    "applicable_deadline_note": {
        +      "type": "string"
        +    },
        +    "domain_scores": {
        +      "items": {
        +        "properties": {
        +          "articles": {
        +            "type": "string"
        +          },
        +          "grade": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "pct": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "gaps": {
        +      "items": {
        +        "properties": {
        +          "articles": {
        +            "type": "string"
        +          },
        +          "domain": {
        +            "type": "string"
        +          },
        +          "question": {
        +            "type": "string"
        +          },
        +          "severity": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "gaps_count": {
        +      "type": "integer"
        +    },
        +    "grade": {
        +      "type": "string"
        +    },
        +    "grade_title": {
        +      "type": "string"
        +    },
        +    "immediate_action_required": {
        +      "type": "boolean"
        +    },
        +    "incident_route_recommended": {
        +      "type": "boolean"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "score_pct": {
        +      "type": "integer"
        +    },
        +    "supervisory_exposure": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_eudr_readiness_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dimensions_met": {
        +      "type": "integer"
        +    },
        +    "dimensions_total": {
        +      "type": "integer"
        +    },
        +    "enforcement_deadlines": {
        +      "items": {
        +        "properties": {
        +          "date": {
        +            "type": "string"
        +          },
        +          "scope": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fully_ready": {
        +      "type": "boolean"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "readiness_grade": {
        +      "type": "string"
        +    },
        +    "readiness_score": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_illustration_selfsupport_test1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "account_value_yr15": {
        +      "type": "integer"
        +    },
        +    "account_value_yr20": {
        +      "type": "integer"
        +    },
        +    "cumulative_net": {
        +      "type": "integer"
        +    },
        +    "face_amount": {
        +      "type": "integer"
        +    },
        +    "illustration_valid": {
        +      "type": "boolean"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "lapse_adjusted_av_yr20": {
        +      "type": "integer"
        +    },
        +    "lapse_support_flag": {
        +      "type": "boolean"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "policy_years_provided": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "self_support_pass": {
        +      "type": "boolean"
        +    },
        +    "self_support_yr15_pass": {
        +      "type": "boolean"
        +    },
        +    "self_support_yr20_pass": {
        +      "type": "boolean"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_coi": {
        +      "type": "integer"
        +    },
        +    "total_expenses": {
        +      "type": "integer"
        +    },
        +    "total_interest": {
        +      "type": "integer"
        +    },
        +    "total_premiums": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_insurance_reporting_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dimensions_met": {
        +      "type": "integer"
        +    },
        +    "dimensions_total": {
        +      "type": "integer"
        +    },
        +    "fully_ready": {
        +      "type": "boolean"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "readiness_grade": {
        +      "type": "string"
        +    },
        +    "readiness_score": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_irrbb_disclosure_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dimensions_met": {
        +      "type": "integer"
        +    },
        +    "dimensions_total": {
        +      "type": "integer"
        +    },
        +    "fully_ready": {
        +      "type": "boolean"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "readiness_grade": {
        +      "type": "string"
        +    },
        +    "readiness_score": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_liquidity_stress_test1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "lcr_breach_pct": {
        +      "type": "integer"
        +    },
        +    "lcr_median_day30": {
        +      "type": "number"
        +    },
        +    "lcr_p5": {
        +      "type": "number"
        +    },
        +    "n_paths": {
        +      "type": "integer"
        +    },
        +    "nsfr_breach_pct": {
        +      "type": "integer"
        +    },
        +    "nsfr_median_day250": {
        +      "type": "number"
        +    },
        +    "nsfr_p5": {
        +      "type": "number"
        +    },
        +    "scenario": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_mica_casp_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dim_scores": {
        +      "properties": {
        +        "authorization": {
        +          "type": "integer"
        +        },
        +        "mar": {
        +          "type": "integer"
        +        },
        +        "own_funds": {
        +          "type": "integer"
        +        },
        +        "travel_rule": {
        +          "type": "integer"
        +        },
        +        "whitepaper": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "gaps": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "readiness_grade": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "secondary_recommendations": {
        +      "type": "array"
        +    },
        +    "services_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_model_test_battery1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "back_test": {
        +      "properties": {
        +        "per_bin": {
        +          "items": {
        +            "properties": {
        +              "abs_diff": {
        +                "type": "number"
        +              },
        +              "actual_rate": {
        +                "type": "number"
        +              },
        +              "bin": {
        +                "type": "string"
        +              },
        +              "n": {
        +                "type": "integer"
        +              },
        +              "predicted_rate": {
        +                "type": "number"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "tests": {
        +      "items": {
        +        "properties": {
        +          "comparison": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "properties": {
        +              "auc": {
        +                "type": "integer"
        +              },
        +              "n_negative": {
        +                "type": "integer"
        +              },
        +              "n_positive": {
        +                "type": "integer"
        +              },
        +              "n_scored": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "metric_value": {
        +            "type": "integer"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "result": {
        +            "type": "string"
        +          },
        +          "standard_name": {
        +            "type": "string"
        +          },
        +          "threshold": {
        +            "type": "number"
        +          },
        +          "threshold_field": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "tests_breached": {
        +      "type": "integer"
        +    },
        +    "tests_passed": {
        +      "type": "integer"
        +    },
        +    "tests_run": {
        +      "type": "integer"
        +    },
        +    "tests_skipped_insufficient_data": {
        +      "type": "integer"
        +    },
        +    "tests_skipped_no_threshold": {
        +      "type": "integer"
        +    },
        +    "threshold_version": {
        +      "type": "string"
        +    },
        +    "thresholds_applied": {
        +      "properties": {
        +        "calibration_max_diff": {
        +          "type": "number"
        +        },
        +        "csi_max": {
        +          "type": "number"
        +        },
        +        "gini_min": {
        +          "type": "number"
        +        },
        +        "ks_min": {
        +          "type": "number"
        +        },
        +        "psi_max": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_pqc_timeline_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dim_scores": {
        +      "properties": {
        +        "agility": {
        +          "type": "integer"
        +        },
        +        "hndl": {
        +          "type": "integer"
        +        },
        +        "inventory": {
        +          "type": "integer"
        +        },
        +        "vendor": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "do_now": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "inventory_deadline_flag": {
        +      "type": "boolean"
        +    },
        +    "milestone_fit": {
        +      "type": "string"
        +    },
        +    "milestones": {
        +      "properties": {
        +        "cnsa_full_deadline": {
        +          "type": "integer"
        +        },
        +        "cnsa_nss_deadline": {
        +          "type": "integer"
        +        },
        +        "eu_finance_deadline": {
        +          "type": "integer"
        +        },
        +        "eu_inventory_deadline": {
        +          "type": "string"
        +        },
        +        "g7_roadmap_date": {
        +          "type": "string"
        +        },
        +        "pci_dss_inventory_date": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "prepare_ahead": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "protocol_routes": {
        +      "type": "array"
        +    },
        +    "readiness_grade": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "total_score": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_rate_shock_ladder1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "buckets_used": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "convention": {
        +      "type": "string"
        +    },
        +    "ladder": {
        +      "properties": {
        +        "parallel_down_100bp": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "integer"
        +            },
        +            "shock_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parallel_down_200bp": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "integer"
        +            },
        +            "shock_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parallel_down_300bp": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "integer"
        +            },
        +            "shock_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parallel_down_400bp": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "integer"
        +            },
        +            "shock_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parallel_up_100bp": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "integer"
        +            },
        +            "shock_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parallel_up_200bp": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "integer"
        +            },
        +            "shock_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parallel_up_300bp": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "integer"
        +            },
        +            "shock_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "parallel_up_400bp": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "integer"
        +            },
        +            "shock_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "magnitudes_bps": {
        +      "items": {
        +        "type": "integer"
        +      },
        +      "type": "array"
        +    },
        +    "nii_12m_gap": {
        +      "type": "integer"
        +    },
        +    "preset_shocks": {
        +      "properties": {
        +        "flattener": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "string"
        +            },
        +            "long_bps": {
        +              "type": "integer"
        +            },
        +            "short_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "steepener": {
        +          "properties": {
        +            "delta_eve": {
        +              "type": "integer"
        +            },
        +            "delta_nii": {
        +              "type": "string"
        +            },
        +            "long_bps": {
        +              "type": "integer"
        +            },
        +            "short_bps": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "total_net_gap": {
        +      "type": "integer"
        +    },
        +    "worst_delta_eve": {
        +      "type": "integer"
        +    },
        +    "worst_scenario": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_regrpt_edit_checks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "type": "array"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "computed_value": {
        +            "type": "integer"
        +          },
        +          "description": {
        +            "type": "string"
        +          },
        +          "edit_id": {
        +            "type": "string"
        +          },
        +          "message": {
        +            "type": "string"
        +          },
        +          "reported_value": {
        +            "type": "integer"
        +          },
        +          "schedule": {
        +            "type": "string"
        +          },
        +          "severity": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rule_set_source": {
        +      "type": "string"
        +    },
        +    "rule_set_version": {
        +      "type": "string"
        +    },
        +    "stale_suppressions": {
        +      "type": "array"
        +    },
        +    "summary": {
        +      "properties": {
        +        "applied": {
        +          "type": "integer"
        +        },
        +        "fail": {
        +          "type": "integer"
        +        },
        +        "overall_pass": {
        +          "type": "boolean"
        +        },
        +        "pass": {
        +          "type": "integer"
        +        },
        +        "stale_suppression_count": {
        +          "type": "integer"
        +        },
        +        "suppressed": {
        +          "type": "integer"
        +        },
        +        "total_rules": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "suppressions_applied": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_sanctions_screening_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "always_route": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "dim_scores": {
        +      "properties": {
        +        "circumvention": {
        +          "type": "integer"
        +        },
        +        "fuzzy_match": {
        +          "type": "integer"
        +        },
        +        "list_coverage": {
        +          "type": "integer"
        +        },
        +        "ownership_50pct": {
        +          "type": "integer"
        +        },
        +        "screening_operations": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "gaps": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "key_dates": {
        +      "properties": {
        +        "bis_affiliates_rule": {
        +          "type": "string"
        +        },
        +        "eu_20th_package": {
        +          "type": "string"
        +        },
        +        "eu_dual_use_update": {
        +          "type": "string"
        +        },
        +        "uk_sanctions_list": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "program_grade": {
        +      "type": "string"
        +    },
        +    "raw_score": {
        +      "type": "integer"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "secondary_routes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_section125_ndt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "all_tests_pass": {
        +      "type": "boolean"
        +    },
        +    "benefits": {
        +      "properties": {
        +        "hce_avg_benefit_pct": {
        +          "type": "number"
        +        },
        +        "nhce_avg_benefit_pct": {
        +          "type": "number"
        +        },
        +        "pass": {
        +          "type": "boolean"
        +        },
        +        "ratio": {
        +          "type": "number"
        +        },
        +        "threshold": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "concentration": {
        +      "properties": {
        +        "concentration_ratio": {
        +          "type": "number"
        +        },
        +        "limit": {
        +          "type": "number"
        +        },
        +        "pass": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "eligibility": {
        +      "properties": {
        +        "hce_eligibility_rate": {
        +          "type": "integer"
        +        },
        +        "nhce_eligibility_rate": {
        +          "type": "number"
        +        },
        +        "pass": {
        +          "type": "boolean"
        +        },
        +        "ratio": {
        +          "type": "number"
        +        },
        +        "threshold": {
        +          "type": "number"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "error": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_slate_reporting_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_date_note": {
        +      "type": "string"
        +    },
        +    "dimensions_passed": {
        +      "type": "integer"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "grade": {
        +      "type": "string"
        +    },
        +    "obligation_checklist_version": {
        +      "type": "string"
        +    },
        +    "ready": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_t1_readiness_diagnostic1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "binding_deadline": {
        +      "properties": {
        +        "allocation_confirmation": {
        +          "properties": {
        +            "date": {
        +              "type": "string"
        +            },
        +            "rule": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "t1_go_live": {
        +          "properties": {
        +            "date": {
        +              "type": "string"
        +            },
        +            "rule": {
        +              "type": "string"
        +            },
        +            "source": {
        +              "type": "string"
        +            },
        +            "status": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "dim_scores": {
        +      "properties": {
        +        "corp_actions": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "funding": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "matching": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "partial": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "penalty": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "ssi": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "timing": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "dual_date_note": {
        +      "type": "string"
        +    },
        +    "firm_type": {
        +      "type": "string"
        +    },
        +    "gap_checklist": {
        +      "items": {
        +        "properties": {
        +          "chain": {
        +            "type": "string"
        +          },
        +          "deadline": {
        +            "type": "string"
        +          },
        +          "gap": {
        +            "type": "string"
        +          },
        +          "priority": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "jurisdictions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_score": {
        +      "type": "integer"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "readiness_grade": {
        +      "type": "string"
        +    },
        +    "secondary_recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_tokenized_settlement_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "dim_scores": {
        +      "properties": {
        +        "asset_leg": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "controls": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "issuer": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "liquidity": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "network": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "settlement_asset": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "finality_flag": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_grade": {
        +      "type": "string"
        +    },
        +    "overall_score": {
        +      "type": "number"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "remediation_checklist": {
        +      "items": {
        +        "properties": {
        +          "action": {
        +            "type": "string"
        +          },
        +          "dimension": {
        +            "type": "string"
        +          },
        +          "grade": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "secondary_recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_treasury_clearing_fit1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_deadline": {
        +      "type": "string"
        +    },
        +    "dim_scores": {
        +      "properties": {
        +        "access": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "capital": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "liquidity": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "margin": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "number"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "ops": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "scope": {
        +          "properties": {
        +            "grade": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_grade": {
        +      "type": "string"
        +    },
        +    "overall_score": {
        +      "type": "number"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "remediation_checklist": {
        +      "items": {
        +        "properties": {
        +          "action": {
        +            "type": "string"
        +          },
        +          "dimension": {
        +            "type": "string"
        +          },
        +          "grade": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "secondary_recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_umr_aana_readiness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aana_group_eur": {
        +      "type": "integer"
        +    },
        +    "aana_in_scope_threshold_eur": {
        +      "type": "integer"
        +    },
        +    "constants_version": {
        +      "type": "string"
        +    },
        +    "counterparties": {
        +      "items": {
        +        "properties": {
        +          "counterparty_id": {
        +            "type": "string"
        +          },
        +          "custodian_ready": {
        +            "type": "boolean"
        +          },
        +          "documentation_status": {
        +            "type": "string"
        +          },
        +          "estimated_im_eur": {
        +            "type": "integer"
        +          },
        +          "over_im_threshold": {
        +            "type": "boolean"
        +          },
        +          "readiness_grade": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "counterparties_over_im_threshold": {
        +      "type": "integer"
        +    },
        +    "counterparty_count": {
        +      "type": "integer"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "im_threshold_eur": {
        +      "type": "integer"
        +    },
        +    "in_scope_aana": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_grade": {
        +      "type": "string"
        +    },
        +    "remediation_checklist": {
        +      "items": {
        +        "properties": {
        +          "action": {
        +            "type": "string"
        +          },
        +          "counterparty_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "thresholds_vintage": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedrun_vop_readiness_diagnostic1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "classification": {
        +      "type": "string"
        +    },
        +    "consistent": {
        +      "type": "boolean"
        +    },
        +    "match_score_provided": {
        +      "type": "boolean"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "psp_declared_maps_to": {
        +      "type": "string"
        +    },
        +    "psp_vop_response_code": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscope_mica_token_and_service1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "classification": {
        +      "type": "string"
        +    },
        +    "delegated_to_existing": {
        +      "type": "boolean"
        +    },
        +    "existing_chains_delegated": {
        +      "type": "array"
        +    },
        +    "mica_note": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "route_target": {
        +      "type": "string"
        +    },
        +    "wave20_chains_applicable": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_agent_insurability_evidence1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "composite": {
        +      "type": "number"
        +    },
        +    "dims": {
        +      "properties": {
        +        "determinism": {
        +          "type": "integer"
        +        },
        +        "dispute_history": {
        +          "type": "number"
        +        },
        +        "oversight_density": {
        +          "type": "number"
        +        },
        +        "replayability": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "incident_history_provided": {
        +      "type": "boolean"
        +    },
        +    "insufficient_evidence": {
        +      "type": "boolean"
        +    },
        +    "reputation_self_asserted": {
        +      "type": "boolean"
        +    },
        +    "rubric_version": {
        +      "type": "string"
        +    },
        +    "underwriter_profile": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_aml_typologies1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "average_score": {
        +      "type": "number"
        +    },
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "high_risk_count": {
        +      "type": "integer"
        +    },
        +    "max_score": {
        +      "type": "number"
        +    },
        +    "medium_risk_count": {
        +      "type": "integer"
        +    },
        +    "overall_risk": {
        +      "type": "string"
        +    },
        +    "top_risk_accounts": {
        +      "items": {
        +        "properties": {
        +          "account_id": {
        +            "type": "string"
        +          },
        +          "avg_score": {
        +            "type": "number"
        +          },
        +          "max_score": {
        +            "type": "number"
        +          },
        +          "total_score": {
        +            "type": "number"
        +          },
        +          "tx_count": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "transaction_count": {
        +      "type": "integer"
        +    },
        +    "travel_rule_violations": {
        +      "type": "integer"
        +    },
        +    "typology_hit_counts": {
        +      "properties": {
        +        "FUNNEL": {
        +          "type": "integer"
        +        },
        +        "HIGH_VELOCITY": {
        +          "type": "integer"
        +        },
        +        "LAYERING": {
        +          "type": "integer"
        +        },
        +        "ROUND_TRIP": {
        +          "type": "integer"
        +        },
        +        "STRUCTURING": {
        +          "type": "integer"
        +        },
        +        "TRAVEL_RULE": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_cash_forecast_accuracy1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "afp_benchmark_tiers": {
        +      "type": "string"
        +    },
        +    "by_horizon": {
        +      "properties": {
        +        "T+1": {
        +          "properties": {
        +            "accuracy_tier": {
        +              "type": "string"
        +            },
        +            "bias_pct": {
        +              "type": "integer"
        +            },
        +            "mape_pct": {
        +              "type": "integer"
        +            },
        +            "n": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "overall_accuracy_tier": {
        +      "type": "string"
        +    },
        +    "overall_bias_pct": {
        +      "type": "integer"
        +    },
        +    "overall_mape_pct": {
        +      "type": "integer"
        +    },
        +    "persistent_sign_periods": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "skipped_zero_actual": {
        +      "type": "integer"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "timing_bias_detected": {
        +      "type": "boolean"
        +    },
        +    "total_observations": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_credit_default_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "auc_roc": {
        +      "type": "number"
        +    },
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "expected_loss_gbp": {
        +      "type": "integer"
        +    },
        +    "gini_coefficient": {
        +      "type": "number"
        +    },
        +    "high_pd_loans": {
        +      "type": "integer"
        +    },
        +    "irb_capital_gbp": {
        +      "type": "integer"
        +    },
        +    "irb_rwa_gbp": {
        +      "type": "integer"
        +    },
        +    "irb_vs_sa_saving": {
        +      "type": "integer"
        +    },
        +    "ks_statistic": {
        +      "type": "number"
        +    },
        +    "n_defaults_observed": {
        +      "type": "integer"
        +    },
        +    "n_loans_scored": {
        +      "type": "integer"
        +    },
        +    "portfolio_pd": {
        +      "type": "number"
        +    },
        +    "sa_capital_gbp": {
        +      "type": "integer"
        +    },
        +    "sa_rwa_gbp": {
        +      "type": "integer"
        +    },
        +    "total_ead_gbp": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_credit_model_quantized1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "accumulator_fixp": {
        +      "type": "integer"
        +    },
        +    "bits": {
        +      "type": "integer"
        +    },
        +    "decision": {
        +      "type": "integer"
        +    },
        +    "n_features": {
        +      "type": "integer"
        +    },
        +    "quant_method": {
        +      "type": "string"
        +    },
        +    "threshold_fixp": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_eudr_country_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "benchmark_risk": {
        +      "type": "string"
        +    },
        +    "commission_delegated_act_note": {
        +      "type": "string"
        +    },
        +    "country_code": {
        +      "type": "string"
        +    },
        +    "due_diligence_level": {
        +      "type": "string"
        +    },
        +    "inspection_rate_pct": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_mt_mx_translation_fidelity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cbpr_plus_deadline": {
        +      "type": "string"
        +    },
        +    "charge_bearer_map": {
        +      "properties": {
        +        "BEN": {
        +          "type": "string"
        +        },
        +        "OUR": {
        +          "type": "string"
        +        },
        +        "SHA": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "fidelity_score": {
        +      "type": "integer"
        +    },
        +    "fidelity_tier": {
        +      "type": "string"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "mapping_results": {
        +      "items": {
        +        "properties": {
        +          "mt_field": {
        +            "type": "string"
        +          },
        +          "mt_present": {
        +            "type": "boolean"
        +          },
        +          "mx_field": {
        +            "type": "string"
        +          },
        +          "mx_present": {
        +            "type": "boolean"
        +          },
        +          "note": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "truncation_risks": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_nis2_incident_significance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "early_warning_deadline_hours": {
        +      "type": "integer"
        +    },
        +    "estimated_affected_users": {
        +      "type": "integer"
        +    },
        +    "estimated_financial_loss_eur": {
        +      "type": "integer"
        +    },
        +    "final_report_deadline_days": {
        +      "type": "integer"
        +    },
        +    "notification_deadline_hours": {
        +      "type": "integer"
        +    },
        +    "recipients": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reporting_required": {
        +      "type": "boolean"
        +    },
        +    "service_disruption_hours": {
        +      "type": "integer"
        +    },
        +    "significance_verdict": {
        +      "type": "string"
        +    },
        +    "triggering_factors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_nis2_supply_chain_diligence1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "active_risk_flags": {
        +      "type": "array"
        +    },
        +    "enisa_control_coverage_pct": {
        +      "type": "integer"
        +    },
        +    "remediation_checklist": {
        +      "type": "array"
        +    },
        +    "risk_score": {
        +      "type": "integer"
        +    },
        +    "risk_tier": {
        +      "type": "string"
        +    },
        +    "vendor_incident_history_12mo": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_partner_stablecoin_readiness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ccy": {
        +      "type": "string"
        +    },
        +    "composite_grade": {
        +      "type": "integer"
        +    },
        +    "eligible": {
        +      "type": "boolean"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "grade": {
        +      "type": "string"
        +    },
        +    "home_regime": {
        +      "type": "string"
        +    },
        +    "reserve_score": {
        +      "type": "integer"
        +    },
        +    "risk_score": {
        +      "type": "integer"
        +    },
        +    "tech_score": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_payee_name_match1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "algorithm_version": {
        +      "type": "string"
        +    },
        +    "close_match_threshold": {
        +      "type": "integer"
        +    },
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "entity_suffix_stripped": {
        +      "type": "boolean"
        +    },
        +    "match_band": {
        +      "type": "string"
        +    },
        +    "match_threshold": {
        +      "type": "integer"
        +    },
        +    "normalized_account_name": {
        +      "type": "string"
        +    },
        +    "normalized_reference_name": {
        +      "type": "string"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "transliteration_in_scope": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_sanctions_screening_quality1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "component_scores": {
        +      "properties": {
        +        "alert_tuning": {
        +          "type": "integer"
        +        },
        +        "escalation_workflow": {
        +          "type": "integer"
        +        },
        +        "list_coverage": {
        +          "type": "integer"
        +        },
        +        "match_calibration": {
        +          "type": "integer"
        +        },
        +        "model_validation": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "component_weights": {
        +      "properties": {
        +        "alert_tuning": {
        +          "type": "integer"
        +        },
        +        "escalation_workflow": {
        +          "type": "integer"
        +        },
        +        "list_coverage": {
        +          "type": "integer"
        +        },
        +        "match_calibration": {
        +          "type": "integer"
        +        },
        +        "model_validation": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "composite_pct": {
        +      "type": "integer"
        +    },
        +    "improvement_priorities": {
        +      "items": {
        +        "properties": {
        +          "action": {
        +            "type": "string"
        +          },
        +          "current_score": {
        +            "type": "integer"
        +          },
        +          "dimension": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "program_grade": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "wolfsberg_note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscore_taxonomy_alignment1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "alignment_verdict": {
        +      "type": "string"
        +    },
        +    "criterion_refs": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "dnsh_gaps": {
        +      "items": {
        +        "properties": {
        +          "objective": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "dnsh_results": {
        +      "properties": {
        +        "biodiversity": {
        +          "type": "string"
        +        },
        +        "circular_economy": {
        +          "type": "string"
        +        },
        +        "climate_adaptation": {
        +          "type": "string"
        +        },
        +        "pollution_prevention": {
        +          "type": "string"
        +        },
        +        "water": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "is_aligned": {
        +      "type": "boolean"
        +    },
        +    "nace_code": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "primary_objective": {
        +      "type": "string"
        +    },
        +    "reference": {
        +      "properties": {
        +        "delegated_acts": {
        +          "type": "string"
        +        },
        +        "regulation": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "safeguards_status": {
        +      "type": "string"
        +    },
        +    "substantial_contribution_status": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscreen_je_ruleset1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "active_rules": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "extract_population_hash": {
        +      "type": "string"
        +    },
        +    "flagged_count": {
        +      "type": "integer"
        +    },
        +    "flagged_entries": {
        +      "items": {
        +        "properties": {
        +          "account_id": {
        +            "type": "string"
        +          },
        +          "amount": {
        +            "type": "integer"
        +          },
        +          "entry_id": {
        +            "type": "string"
        +          },
        +          "highest_severity": {
        +            "type": "string"
        +          },
        +          "posting_date": {
        +            "type": "string"
        +          },
        +          "rules_tripped": {
        +            "items": {
        +              "properties": {
        +                "detail": {
        +                  "type": "string"
        +                },
        +                "rule_id": {
        +                  "type": "string"
        +                },
        +                "severity": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "user_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "missing_policy_inputs": {
        +      "type": "array"
        +    },
        +    "rule_params_used": {
        +      "properties": {
        +        "authorized_user_account_pairs_count": {
        +          "type": "integer"
        +        },
        +        "holiday_dates": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "post_close_date": {
        +          "type": "string"
        +        },
        +        "round_number_increment": {
        +          "type": "integer"
        +        },
        +        "suspense_accounts": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "weekend_days": {
        +          "items": {
        +            "type": "integer"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "rule_trip_counts": {
        +      "properties": {
        +        "post_close": {
        +          "type": "integer"
        +        },
        +        "round_number": {
        +          "type": "integer"
        +        },
        +        "suspense_manual": {
        +          "type": "integer"
        +        },
        +        "unusual_user_account": {
        +          "type": "integer"
        +        },
        +        "weekend_holiday": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "ruleset_version": {
        +      "type": "string"
        +    },
        +    "total_entries": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscreen_onledger_transfer_batch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "batch_clean": {
        +      "type": "boolean"
        +    },
        +    "coverage_gaps": {
        +      "type": "array"
        +    },
        +    "per_transfer": {
        +      "items": {
        +        "properties": {
        +          "hits": {
        +            "type": "array"
        +          },
        +          "index": {
        +            "type": "integer"
        +          },
        +          "purpose_code_ok": {
        +            "type": "boolean"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "profile": {
        +      "type": "string"
        +    },
        +    "transfer_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscreen_sanctions_private1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "clean": {
        +      "type": "boolean"
        +    },
        +    "coverage": {
        +      "properties": {
        +        "total_checked": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "hit_count": {
        +      "type": "integer"
        +    },
        +    "list_version": {
        +      "type": "string"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "screened": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedscreen_tip20_transfer_batch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "batch_verdict": {
        +      "type": "string"
        +    },
        +    "escalate_count": {
        +      "type": "integer"
        +    },
        +    "flag_count": {
        +      "type": "integer"
        +    },
        +    "pass_count": {
        +      "type": "integer"
        +    },
        +    "results": {
        +      "items": {
        +        "properties": {
        +          "amount_usd": {
        +            "type": "integer"
        +          },
        +          "flags": {
        +            "type": "array"
        +          },
        +          "ofac_hit": {
        +            "type": "boolean"
        +          },
        +          "sar_determination": {
        +            "type": "string"
        +          },
        +          "travel_rule_status": {
        +            "type": "string"
        +          },
        +          "tx_ref": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "sar_threshold_usd": {
        +      "type": "integer"
        +    },
        +    "total": {
        +      "type": "integer"
        +    },
        +    "tr_threshold_usd": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedselect_agentic_checkout_protocol1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "primary_name": {
        +      "type": "string"
        +    },
        +    "primary_recommendation": {
        +      "type": "string"
        +    },
        +    "primary_score": {
        +      "type": "integer"
        +    },
        +    "profile": {
        +      "properties": {
        +        "agent_appetite": {
        +          "type": "string"
        +        },
        +        "aov": {
        +          "type": "string"
        +        },
        +        "buyer_type": {
        +          "type": "string"
        +        },
        +        "geo": {
        +          "type": "string"
        +        },
        +        "platform": {
        +          "type": "string"
        +        },
        +        "stack_card": {
        +          "type": "boolean"
        +        },
        +        "stack_crypto": {
        +          "type": "boolean"
        +        },
        +        "tech_cap": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "protocol_scores": {
        +      "items": {
        +        "properties": {
        +          "bestFor": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "notFor": {
        +            "type": "string"
        +          },
        +          "protocol": {
        +            "type": "string"
        +          },
        +          "score": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "recommended_protocols": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "viable_protocols": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedselect_cbe_license1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "arweave_uri": {
        +      "type": "string"
        +    },
        +    "arweave_uri_legacy": {
        +      "type": "string"
        +    },
        +    "caveats": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "cbe_id": {
        +      "type": "string"
        +    },
        +    "commercial": {
        +      "type": "boolean"
        +    },
        +    "creator_retains": {
        +      "type": "boolean"
        +    },
        +    "current_enum_name": {
        +      "type": "string"
        +    },
        +    "derivatives": {
        +      "type": "boolean"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "exclusivity": {
        +      "type": "string"
        +    },
        +    "launch_alias": {
        +      "type": "string"
        +    },
        +    "license_version_index": {
        +      "type": "integer"
        +    },
        +    "matrix_verified": {
        +      "type": "string"
        +    },
        +    "objectionable_use_restriction": {
        +      "type": "boolean"
        +    },
        +    "reference_url": {
        +      "type": "string"
        +    },
        +    "sublicense": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedselect_embedded_license1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "decision_path": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "description": {
        +      "type": "string"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "inputs_resolved": {
        +      "properties": {
        +        "allow_sharing": {
        +          "type": "boolean"
        +        },
        +        "commercial_use": {
        +          "type": "boolean"
        +        },
        +        "public_display": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "label": {
        +      "type": "string"
        +    },
        +    "rights": {
        +      "properties": {
        +        "allow_sharing": {
        +          "type": "boolean"
        +        },
        +        "commercial_use": {
        +          "type": "boolean"
        +        },
        +        "public_display": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "source_family": {
        +      "type": "string"
        +    },
        +    "source_url": {
        +      "type": "string"
        +    },
        +    "tier_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsimulate_agent_spend_policy1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "approval_thresholds": {
        +      "properties": {
        +        "board_approval_gate": {
        +          "type": "boolean"
        +        },
        +        "dual_sig_required": {
        +          "type": "boolean"
        +        },
        +        "single_sig_auto": {
        +          "type": "boolean"
        +        },
        +        "timeout_minutes": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "compliance": {
        +      "properties": {
        +        "kyc_check": {
        +          "type": "boolean"
        +        },
        +        "ofac_screen": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "corridor": {
        +      "properties": {
        +        "destination": {
        +          "type": "string"
        +        },
        +        "origin": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "mandate_id": {
        +      "type": "string"
        +    },
        +    "mcc_constraints": {
        +      "properties": {
        +        "allowlist": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "blocklist": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rail": {
        +      "type": "string"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "schema": {
        +      "type": "string"
        +    },
        +    "spend_caps": {
        +      "properties": {
        +        "daily_aggregate": {
        +          "properties": {
        +            "amount": {
        +              "type": "integer"
        +            },
        +            "currency": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "flag_threshold": {
        +          "properties": {
        +            "amount": {
        +              "type": "integer"
        +            },
        +            "currency": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "monthly_aggregate": {
        +          "properties": {
        +            "amount": {
        +              "type": "integer"
        +            },
        +            "currency": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "single_transaction": {
        +          "properties": {
        +            "amount": {
        +              "type": "integer"
        +            },
        +            "currency": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "time_windows": {
        +      "properties": {
        +        "allow_weekends": {
        +          "type": "boolean"
        +        },
        +        "allowed_utc": {
        +          "type": "string"
        +        },
        +        "block_holidays": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "velocity_rules": {
        +      "properties": {
        +        "cooldown_minutes": {
        +          "type": "integer"
        +        },
        +        "max_txns_per_day": {
        +          "type": "integer"
        +        },
        +        "max_txns_per_hour": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsimulate_consent_stress1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "consents_active": {
        +      "type": "integer"
        +    },
        +    "consents_expired": {
        +      "type": "integer"
        +    },
        +    "consents_failed": {
        +      "type": "integer"
        +    },
        +    "consents_revoked": {
        +      "type": "integer"
        +    },
        +    "mean_fsm_steps": {
        +      "type": "number"
        +    },
        +    "regulatory_regime": {
        +      "type": "string"
        +    },
        +    "stage_failures": {
        +      "properties": {
        +        "auth": {
        +          "type": "integer"
        +        },
        +        "redirect": {
        +          "type": "integer"
        +        },
        +        "token": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "success_rate": {
        +      "type": "number"
        +    },
        +    "total_flows": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsimulate_frtb_es1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "capital_ima": {
        +      "type": "number"
        +    },
        +    "capital_required": {
        +      "type": "number"
        +    },
        +    "confidence_level": {
        +      "type": "number"
        +    },
        +    "es_97_5_pct": {
        +      "type": "number"
        +    },
        +    "es_by_lh_class": {
        +      "items": {
        +        "type": "number"
        +      },
        +      "type": "array"
        +    },
        +    "floor_binding": {
        +      "type": "boolean"
        +    },
        +    "n_positions": {
        +      "type": "integer"
        +    },
        +    "n_scenarios": {
        +      "type": "integer"
        +    },
        +    "nmrf_surcharge": {
        +      "type": "integer"
        +    },
        +    "pla_ratio": {
        +      "type": "number"
        +    },
        +    "pla_test_status": {
        +      "type": "string"
        +    },
        +    "sa_floor": {
        +      "type": "number"
        +    },
        +    "undiversified_es": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsimulate_gpi_tracker_lifecycle1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "allowed_next_statuses": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "amount_usd": {
        +      "type": "integer"
        +    },
        +    "current_status": {
        +      "type": "string"
        +    },
        +    "hours_elapsed": {
        +      "type": "integer"
        +    },
        +    "is_rejected": {
        +      "type": "boolean"
        +    },
        +    "is_settled": {
        +      "type": "boolean"
        +    },
        +    "is_terminal": {
        +      "type": "boolean"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "lifecycle_states": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "next_status": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "sla_breached": {
        +      "type": "boolean"
        +    },
        +    "sla_hours_limit": {
        +      "type": "integer"
        +    },
        +    "sla_note": {
        +      "type": "string"
        +    },
        +    "stage_description": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "transition_reason": {
        +      "type": "string"
        +    },
        +    "transition_valid": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsimulate_output_floor1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "binding_floor_year": {
        +      "type": "string"
        +    },
        +    "capital_impact_path": {
        +      "items": {
        +        "properties": {
        +          "applied_rwa": {
        +            "type": "integer"
        +          },
        +          "binding": {
        +            "type": "boolean"
        +          },
        +          "floor_pct": {
        +            "type": "number"
        +          },
        +          "floor_rwa": {
        +            "type": "integer"
        +          },
        +          "incremental_rwa": {
        +            "type": "integer"
        +          },
        +          "year": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "floor_ever_binds": {
        +      "type": "boolean"
        +    },
        +    "internal_model_rwa": {
        +      "type": "integer"
        +    },
        +    "max_incremental_rwa": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "rule_status": {
        +      "type": "string"
        +    },
        +    "standardized_rwa": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsimulate_stablecoin_reserve1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "art36_buffer_adequate_pct": {
        +      "type": "integer"
        +    },
        +    "breach_probability_pct": {
        +      "type": "integer"
        +    },
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "coverage_p50_end_day": {
        +      "type": "number"
        +    },
        +    "coverage_p5_end_day": {
        +      "type": "number"
        +    },
        +    "horizon_days": {
        +      "type": "integer"
        +    },
        +    "n_paths": {
        +      "type": "integer"
        +    },
        +    "peak_breach_pct": {
        +      "type": "integer"
        +    },
        +    "scenario": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsimulate_var_monte_carlo1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "conf_level": {
        +      "type": "number"
        +    },
        +    "correlation": {
        +      "type": "number"
        +    },
        +    "draw_count": {
        +      "type": "integer"
        +    },
        +    "es_dollar_mm": {
        +      "type": "number"
        +    },
        +    "holding_period": {
        +      "type": "integer"
        +    },
        +    "mc_es_pct": {
        +      "type": "number"
        +    },
        +    "mc_var_pct": {
        +      "type": "number"
        +    },
        +    "n_assets": {
        +      "type": "integer"
        +    },
        +    "n_paths": {
        +      "type": "integer"
        +    },
        +    "prng_algorithm": {
        +      "type": "string"
        +    },
        +    "seed": {
        +      "type": "integer"
        +    },
        +    "var_dollar_mm": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsimulate_vop_matching1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "close_match": {
        +      "type": "integer"
        +    },
        +    "match": {
        +      "type": "integer"
        +    },
        +    "match_rate_pct": {
        +      "type": "integer"
        +    },
        +    "no_match": {
        +      "type": "integer"
        +    },
        +    "total_records": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsimulate_x402_flow1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "decoded_type": {
        +      "type": "string"
        +    },
        +    "errors": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "level": {
        +            "type": "string"
        +          },
        +          "msg": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "has_accepts": {
        +      "type": "boolean"
        +    },
        +    "is_json": {
        +      "type": "boolean"
        +    },
        +    "mode": {
        +      "type": "string"
        +    },
        +    "network": {
        +      "type": "string"
        +    },
        +    "passes": {
        +      "type": "integer"
        +    },
        +    "scheme": {
        +      "type": "string"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "warnings": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsize_ccp_default_fund_cover21 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "fund_adequate": {
        +      "type": "boolean"
        +    },
        +    "fund_size_display": {
        +      "type": "string"
        +    },
        +    "fund_size_minor_units": {
        +      "type": "integer"
        +    },
        +    "member_count": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "per_scenario": {
        +      "items": {
        +        "properties": {
        +          "cover2_requirement_display": {
        +            "type": "string"
        +          },
        +          "cover2_requirement_minor_units": {
        +            "type": "integer"
        +          },
        +          "largest": {
        +            "properties": {
        +              "member_id": {
        +                "type": "string"
        +              },
        +              "stress_loss_minor_units": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "loss_bps": {
        +            "type": "integer"
        +          },
        +          "member_losses": {
        +            "items": {
        +              "properties": {
        +                "member_id": {
        +                  "type": "string"
        +                },
        +                "stress_loss_minor_units": {
        +                  "type": "integer"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "scenario_id": {
        +            "type": "string"
        +          },
        +          "second_largest": {
        +            "properties": {
        +              "member_id": {
        +                "type": "string"
        +              },
        +              "stress_loss_minor_units": {
        +                "type": "integer"
        +              }
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "scenario_count": {
        +      "type": "integer"
        +    },
        +    "shortfall_display": {
        +      "type": "string"
        +    },
        +    "shortfall_minor_units": {
        +      "type": "integer"
        +    },
        +    "worst_case_cover2_requirement_display": {
        +      "type": "string"
        +    },
        +    "worst_case_cover2_requirement_minor_units": {
        +      "type": "integer"
        +    },
        +    "worst_case_scenario_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedstress_test_ap_redemption_path1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ap_count": {
        +      "type": "integer"
        +    },
        +    "concentration_risk": {
        +      "type": "string"
        +    },
        +    "issuer_credit_exposure_distinct": {
        +      "type": "boolean"
        +    },
        +    "liquidity_flag": {
        +      "type": "string"
        +    },
        +    "not_investment_advice": {
        +      "type": "string"
        +    },
        +    "premium_discount_exposure": {
        +      "type": "boolean"
        +    },
        +    "redemption_path": {
        +      "type": "string"
        +    },
        +    "redemption_reachable_for_non_ap": {
        +      "type": "boolean"
        +    },
        +    "structural_dependencies": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsweep_fedwire_addresses1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "fedwire_chips_deadline": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "rejection_risk_report": {
        +      "properties": {
        +        "by_rule": {
        +          "properties": {},
        +          "type": "object"
        +        },
        +        "compliant_count": {
        +          "type": "integer"
        +        },
        +        "compliant_pct": {
        +          "type": "integer"
        +        },
        +        "non_compliant_count": {
        +          "type": "integer"
        +        },
        +        "parse_errors": {
        +          "type": "array"
        +        },
        +        "total_records": {
        +          "type": "integer"
        +        },
        +        "worst_offenders": {
        +          "type": "array"
        +        },
        +        "worst_offenders_truncated": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "risk_score": {
        +      "type": "integer"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedtest_bifsg_bias_thresholds1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "anchor_instruction": {
        +      "type": "string"
        +    },
        +    "attestation_deadline": {
        +      "type": "string"
        +    },
        +    "attestation_year": {
        +      "type": "integer"
        +    },
        +    "bias_detected": {
        +      "type": "boolean"
        +    },
        +    "do_now": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "marginal_effect_flag": {
        +      "type": "boolean"
        +    },
        +    "marginal_effect_pct": {
        +      "type": "number"
        +    },
        +    "marginal_effect_threshold_pp": {
        +      "type": "integer"
        +    },
        +    "model_type": {
        +      "type": "string"
        +    },
        +    "p_value": {
        +      "type": "number"
        +    },
        +    "p_value_significant": {
        +      "type": "boolean"
        +    },
        +    "p_value_threshold": {
        +      "type": "number"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "premium_flag": {
        +      "type": "boolean"
        +    },
        +    "premium_per_1000_above_avg_pct": {
        +      "type": "integer"
        +    },
        +    "premium_threshold_pct": {
        +      "type": "integer"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "remediation_required": {
        +      "type": "boolean"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "test_context": {
        +      "type": "string"
        +    },
        +    "test_result": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedtest_hedge_effectiveness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "anchor_surface": {
        +      "type": "string"
        +    },
        +    "asc815_80_125_band": {
        +      "type": "string"
        +    },
        +    "cumulative_hedged_change": {
        +      "type": "integer"
        +    },
        +    "cumulative_hedging_change": {
        +      "type": "integer"
        +    },
        +    "dollar_offset_effective": {
        +      "type": "boolean"
        +    },
        +    "dollar_offset_ratio": {
        +      "type": "number"
        +    },
        +    "effectiveness_reason": {
        +      "type": "string"
        +    },
        +    "effectiveness_standard": {
        +      "type": "string"
        +    },
        +    "hedge_ratio": {
        +      "type": "integer"
        +    },
        +    "ifrs9_hedge_ratio_passes": {
        +      "type": "boolean"
        +    },
        +    "is_effective": {
        +      "type": "boolean"
        +    },
        +    "method_applied": {
        +      "type": "string"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "observation_count": {
        +      "type": "integer"
        +    },
        +    "ols_alpha": {
        +      "type": "number"
        +    },
        +    "ols_beta": {
        +      "type": "number"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "r_squared": {
        +      "type": "number"
        +    },
        +    "regression_effective": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedtest_hoepa_high_cost1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "apor_pct": {
        +      "type": "number"
        +    },
        +    "apr_pct": {
        +      "type": "number"
        +    },
        +    "apr_spread_pct": {
        +      "type": "integer"
        +    },
        +    "apr_threshold_basis": {
        +      "type": "string"
        +    },
        +    "apr_threshold_pct": {
        +      "type": "number"
        +    },
        +    "apr_trigger_met": {
        +      "type": "boolean"
        +    },
        +    "consumes": {
        +      "type": "string"
        +    },
        +    "fr_citation": {
        +      "type": "string"
        +    },
        +    "has_prepayment_penalty": {
        +      "type": "boolean"
        +    },
        +    "is_high_cost": {
        +      "type": "boolean"
        +    },
        +    "is_small_dwelling": {
        +      "type": "boolean"
        +    },
        +    "lien_type": {
        +      "type": "string"
        +    },
        +    "loan_amount": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "points_and_fees": {
        +      "type": "integer"
        +    },
        +    "points_fees_floor": {
        +      "type": "integer"
        +    },
        +    "points_fees_limit": {
        +      "type": "integer"
        +    },
        +    "points_fees_limit_pct": {
        +      "type": "integer"
        +    },
        +    "points_fees_trigger_met": {
        +      "type": "boolean"
        +    },
        +    "pp_pct_limit": {
        +      "type": "integer"
        +    },
        +    "pp_period_limit_months": {
        +      "type": "integer"
        +    },
        +    "prepayment_penalty_pct": {
        +      "type": "integer"
        +    },
        +    "prepayment_penalty_period_months": {
        +      "type": "integer"
        +    },
        +    "prepayment_penalty_trigger_met": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "triggers_fired": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "year": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedtest_nav_error_materiality1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "affected_period": {
        +      "properties": {
        +        "days": {
        +          "type": "string"
        +        },
        +        "end_date": {
        +          "type": "string"
        +        },
        +        "start_date": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "declared_policy": {
        +      "properties": {
        +        "absolute_breach": {
        +          "type": "boolean"
        +        },
        +        "absolute_threshold": {
        +          "type": "string"
        +        },
        +        "material": {
        +          "type": "boolean"
        +        },
        +        "percent_breach": {
        +          "type": "boolean"
        +        },
        +        "percent_threshold": {
        +          "type": "string"
        +        },
        +        "policy_source": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "error": {
        +      "properties": {
        +        "corrected_nav_per_share": {
        +          "type": "string"
        +        },
        +        "erroneous_nav_per_share": {
        +          "type": "string"
        +        },
        +        "error_amount": {
        +          "type": "string"
        +        },
        +        "error_amount_abs": {
        +          "type": "string"
        +        },
        +        "error_direction": {
        +          "type": "string"
        +        },
        +        "error_pct_abs": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "estimated_impact": {
        +      "type": "string"
        +    },
        +    "fence": {
        +      "type": "string"
        +    },
        +    "fund_id": {
        +      "type": "string"
        +    },
        +    "industry_convention": {
        +      "properties": {
        +        "absolute_breach": {
        +          "type": "boolean"
        +        },
        +        "absolute_threshold": {
        +          "type": "string"
        +        },
        +        "material": {
        +          "type": "boolean"
        +        },
        +        "percent_breach": {
        +          "type": "boolean"
        +        },
        +        "percent_threshold": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "materiality_verdict": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "reprocessing_need_indicated": {
        +      "type": "boolean"
        +    },
        +    "shares_outstanding": {
        +      "type": "string"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    },
        +    "valuation_date": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedtest_reg_w_affiliate_transactions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregate_test": {
        +      "properties": {
        +        "breach": {
        +          "type": "boolean"
        +        },
        +        "exposure": {
        +          "type": "integer"
        +        },
        +        "limit_amount": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "collateral_tests": {
        +      "items": {
        +        "properties": {
        +          "affiliate_id": {
        +            "type": "string"
        +          },
        +          "amount": {
        +            "type": "integer"
        +          },
        +          "collateral_value": {
        +            "type": "integer"
        +          },
        +          "required_collateral": {
        +            "type": "integer"
        +          },
        +          "required_collateral_pct": {
        +            "type": "integer"
        +          },
        +          "shortfall": {
        +            "type": "boolean"
        +          },
        +          "transaction_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "decision": {
        +      "type": "string"
        +    },
        +    "execution_state": {
        +      "type": "string"
        +    },
        +    "market_terms_declarations": {
        +      "items": {
        +        "properties": {
        +          "affiliate_id": {
        +            "type": "string"
        +          },
        +          "market_terms_substantially_same": {
        +            "type": "boolean"
        +          },
        +          "transaction_id": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "policy_vintage": {
        +      "type": "string"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "single_affiliate_tests": {
        +      "items": {
        +        "properties": {
        +          "affiliate_id": {
        +            "type": "string"
        +          },
        +          "breach": {
        +            "type": "boolean"
        +          },
        +          "exposure": {
        +            "type": "integer"
        +          },
        +          "limit_amount": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedtrack_fatca_crs_ro_remediation_closure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "certification_period": {
        +      "type": "string"
        +    },
        +    "closed_count": {
        +      "type": "integer"
        +    },
        +    "closure_coverage_pct": {
        +      "type": "integer"
        +    },
        +    "cutoff_at": {
        +      "type": "string"
        +    },
        +    "determinations": {
        +      "items": {
        +        "properties": {
        +          "closed_at": {
        +            "type": "string"
        +          },
        +          "closure_status": {
        +            "type": "string"
        +          },
        +          "doc_ref_id": {
        +            "type": "string"
        +          },
        +          "exception": {
        +            "type": "string"
        +          },
        +          "ha_note": {
        +            "type": "string"
        +          },
        +          "item_state": {
        +            "type": "string"
        +          },
        +          "notification_code": {
        +            "type": "string"
        +          },
        +          "notification_id": {
        +            "type": "string"
        +          },
        +          "resubmission_linkage": {
        +            "properties": {
        +              "resubmitted_at": {
        +                "type": "string"
        +              },
        +              "resubmitted_doc_ref_id": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "evaluated_at": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "notification_count": {
        +      "type": "integer"
        +    },
        +    "open_count": {
        +      "type": "integer"
        +    },
        +    "overdue_count": {
        +      "type": "integer"
        +    },
        +    "readiness_verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedtrack_ifrs17_loss_component_rollforward1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "additional_lc": {
        +      "type": "integer"
        +    },
        +    "closing_lc": {
        +      "type": "integer"
        +    },
        +    "fully_reversed": {
        +      "type": "boolean"
        +    },
        +    "lc_valid": {
        +      "type": "boolean"
        +    },
        +    "opening_lc": {
        +      "type": "integer"
        +    },
        +    "other_adj": {
        +      "type": "integer"
        +    },
        +    "pre_release": {
        +      "type": "integer"
        +    },
        +    "release_to_pnl": {
        +      "type": "integer"
        +    },
        +    "reversal_lc": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_a2a_trust_chain1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "card_schema_ok": {
        +      "type": "boolean"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "no_expired_links": {
        +      "type": "boolean"
        +    },
        +    "no_scope_escalation": {
        +      "type": "boolean"
        +    },
        +    "pass_count": {
        +      "type": "integer"
        +    },
        +    "signature_block_present": {
        +      "type": "boolean"
        +    },
        +    "trust_determination": {
        +      "type": "string"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_a2a_x402_mandate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "extension_declared": {
        +      "type": "boolean"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "pass_count": {
        +      "type": "integer"
        +    },
        +    "payment_authority_scope_present": {
        +      "type": "boolean"
        +    },
        +    "settlement_rail_bound": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_acp_checkout1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "merchant_id": {
        +      "type": "string"
        +    },
        +    "overall_status": {
        +      "type": "string"
        +    },
        +    "pass_count": {
        +      "type": "integer"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_adverse_action_notice1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "action_taken": {
        +      "type": "string"
        +    },
        +    "compliance_score": {
        +      "type": "integer"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "credit_score_used": {
        +      "type": "boolean"
        +    },
        +    "fcra_required": {
        +      "type": "boolean"
        +    },
        +    "fcra_violations": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "reason_count": {
        +      "type": "integer"
        +    },
        +    "reason_count_valid": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "violation_count": {
        +      "type": "integer"
        +    },
        +    "violations": {
        +      "type": "array"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    },
        +    "warnings": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_agent_audit_trail1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aat_completeness_score": {
        +      "type": "integer"
        +    },
        +    "aat_required_fields_present": {
        +      "type": "boolean"
        +    },
        +    "action_class": {
        +      "type": "string"
        +    },
        +    "action_detail": {
        +      "type": "string"
        +    },
        +    "agent_identity": {
        +      "type": "string"
        +    },
        +    "alignment_note": {
        +      "type": "string"
        +    },
        +    "chain_position": {
        +      "type": "string"
        +    },
        +    "conformance_result": {
        +      "type": "string"
        +    },
        +    "ecdsa_present": {
        +      "type": "boolean"
        +    },
        +    "outcome": {
        +      "type": "string"
        +    },
        +    "record_id": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "sha256_chain_format_valid": {
        +      "type": "boolean"
        +    },
        +    "sha256_prev_record": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "trust_level": {
        +      "type": "string"
        +    },
        +    "validation_errors": {
        +      "type": "array"
        +    },
        +    "validation_warnings": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_agent_commerce_conformance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "overall_status": {
        +      "type": "string"
        +    },
        +    "pass_count": {
        +      "type": "integer"
        +    },
        +    "protocols_validated": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_agent_obo_mandate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "has_intent": {
        +      "type": "boolean"
        +    },
        +    "has_scope": {
        +      "type": "boolean"
        +    },
        +    "has_subject": {
        +      "type": "boolean"
        +    },
        +    "not_expired": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_ai_impact_assessment1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "complete": {
        +      "type": "boolean"
        +    },
        +    "completeness_score": {
        +      "type": "integer"
        +    },
        +    "fields_checked": {
        +      "type": "integer"
        +    },
        +    "fields_passed": {
        +      "type": "integer"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_audit_trail_completeness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "continuity_mechanism": {
        +      "type": "string"
        +    },
        +    "continuity_verdict": {
        +      "type": "string"
        +    },
        +    "event_counts_by_type": {
        +      "properties": {
        +        "privileged_action": {
        +          "type": "integer"
        +        },
        +        "transaction": {
        +          "type": "integer"
        +        },
        +        "user_activity": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "gap_count": {
        +      "type": "integer"
        +    },
        +    "gaps": {
        +      "type": "array"
        +    },
        +    "known_gap_candidates_reconciled": {
        +      "type": "array"
        +    },
        +    "privileged_action_coverage": {
        +      "properties": {
        +        "covered": {
        +          "type": "boolean"
        +        },
        +        "privileged_events_logged": {
        +          "type": "integer"
        +        },
        +        "transaction_events_logged": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "retention_conformance": {
        +      "properties": {
        +        "conforms": {
        +          "type": "boolean"
        +        },
        +        "declared_days": {
        +          "type": "integer"
        +        },
        +        "required_days": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "undecidable": {
        +      "type": "array"
        +    },
        +    "window_end": {
        +      "type": "string"
        +    },
        +    "window_start": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_canton_selective_disclosure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "bank_view_ok": {
        +      "type": "boolean"
        +    },
        +    "cross_leak_fields": {
        +      "type": "array"
        +    },
        +    "no_cross_leg_leak": {
        +      "type": "boolean"
        +    },
        +    "partition_attestation": {
        +      "type": "string"
        +    },
        +    "reconciles_to_commitment": {
        +      "type": "boolean"
        +    },
        +    "registrar_view_ok": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_cat_bond_trigger_terms1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attachment_breached": {
        +      "type": "boolean"
        +    },
        +    "cascade_attachment_check": {
        +      "type": "string"
        +    },
        +    "coverage_amount_used": {
        +      "type": "integer"
        +    },
        +    "excess_above_attachment": {
        +      "type": "integer"
        +    },
        +    "exhaustion_reached": {
        +      "type": "boolean"
        +    },
        +    "implied_coverage": {
        +      "type": "integer"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "layer_position": {
        +      "type": "string"
        +    },
        +    "layer_width": {
        +      "type": "integer"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "payout_amount": {
        +      "type": "integer"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "pro_rata_factor": {
        +      "type": "number"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "terms_valid": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_cctp_v2_transfer1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "dest_domain": {
        +      "type": "string"
        +    },
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "grade": {
        +      "type": "string"
        +    },
        +    "notional_usd": {
        +      "type": "integer"
        +    },
        +    "source_domain": {
        +      "type": "string"
        +    },
        +    "transfer_mode": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_commission_hierarchy1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "agent_count": {
        +      "type": "integer"
        +    },
        +    "by_level": {
        +      "items": {
        +        "properties": {
        +          "agent_count": {
        +            "type": "integer"
        +          },
        +          "agents": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "level": {
        +            "type": "integer"
        +          },
        +          "total_split_pct": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "is_valid": {
        +      "type": "boolean"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "orphan_count": {
        +      "type": "integer"
        +    },
        +    "override_stacking_detected": {
        +      "type": "boolean"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_levels": {
        +      "type": "integer"
        +    },
        +    "violations": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_cross_network_settlement1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "atomicity_verdict": {
        +      "type": "string"
        +    },
        +    "coordination_recommendation": {
        +      "type": "string"
        +    },
        +    "leg_findings": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "pvp_check": {
        +      "type": "string"
        +    },
        +    "residual_exposure": {
        +      "type": "string"
        +    },
        +    "settlement_risk_window_sec": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_cyclonedx_sbom1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "component_count": {
        +      "type": "integer"
        +    },
        +    "components_missing_purl": {
        +      "type": "array"
        +    },
        +    "format": {
        +      "type": "string"
        +    },
        +    "has_dependencies": {
        +      "type": "boolean"
        +    },
        +    "sbom_valid": {
        +      "type": "boolean"
        +    },
        +    "spec_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_deposit_token_compliance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "applicable_regime": {
        +      "type": "string"
        +    },
        +    "capital_accounting_note": {
        +      "type": "string"
        +    },
        +    "classification": {
        +      "type": "string"
        +    },
        +    "classification_grade": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "remediation_checklist": {
        +      "items": {
        +        "properties": {
        +          "action": {
        +            "type": "string"
        +          },
        +          "issue": {
        +            "type": "string"
        +          },
        +          "test": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "status_asof": {
        +      "type": "string"
        +    },
        +    "test_results": {
        +      "properties": {
        +        "eligibility": {
        +          "properties": {
        +            "note": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "insurance": {
        +          "properties": {
        +            "note": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "liability": {
        +          "properties": {
        +            "note": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "redemption": {
        +          "properties": {
        +            "note": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "token_class": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_dpp_data_carrier1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "carrier_valid": {
        +      "type": "boolean"
        +    },
        +    "missing_elements": {
        +      "type": "array"
        +    },
        +    "ontology_conformant": {
        +      "type": "boolean"
        +    },
        +    "ontology_version": {
        +      "type": "string"
        +    },
        +    "product_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_dtc_tokenized_treasury1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "collateral_reuse_ok": {
        +      "type": "boolean"
        +    },
        +    "custody_link_ok": {
        +      "type": "boolean"
        +    },
        +    "daml_lifecycle_gaps": {
        +      "type": "array"
        +    },
        +    "daml_template_ok": {
        +      "type": "boolean"
        +    },
        +    "dvp_ready": {
        +      "type": "boolean"
        +    },
        +    "fed_eligible": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_dtcc_ca_iso20022_message1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "dtcc_operator_mandate_basis": {
        +      "type": "string"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "event_type": {
        +      "type": "string"
        +    },
        +    "message_function": {
        +      "type": "string"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "readiness_pct": {
        +      "type": "integer"
        +    },
        +    "reference_id": {
        +      "type": "string"
        +    },
        +    "structure_valid": {
        +      "type": "boolean"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "violations": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_ebam_acmt_flow1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ack_count": {
        +      "type": "integer"
        +    },
        +    "acmt_state": {
        +      "type": "string"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "is_valid": {
        +      "type": "boolean"
        +    },
        +    "message_sequence": {
        +      "items": {
        +        "properties": {
        +          "account_id": {
        +            "type": "string"
        +          },
        +          "expects_ack": {
        +            "type": "boolean"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "msg_id": {
        +            "type": "string"
        +          },
        +          "msg_type": {
        +            "type": "string"
        +          },
        +          "role": {
        +            "type": "string"
        +          },
        +          "seq": {
        +            "type": "integer"
        +          },
        +          "valid": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "orphan_count": {
        +      "type": "integer"
        +    },
        +    "orphan_requests": {
        +      "type": "array"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "report_count": {
        +      "type": "integer"
        +    },
        +    "request_count": {
        +      "type": "integer"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "total_messages": {
        +      "type": "integer"
        +    },
        +    "validation_errors": {
        +      "type": "array"
        +    },
        +    "validation_warnings": {
        +      "type": "array"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_einvoice_format1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "pass": {
        +            "type": "boolean"
        +          },
        +          "rule": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "format": {
        +      "type": "string"
        +    },
        +    "line_item_count": {
        +      "type": "integer"
        +    },
        +    "missing_fields": {
        +      "type": "array"
        +    },
        +    "parse_error": {
        +      "type": "string"
        +    },
        +    "rule_set_version": {
        +      "type": "string"
        +    },
        +    "structural_completeness": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_eudr_due_diligence_statement1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "conformant": {
        +      "type": "boolean"
        +    },
        +    "country_of_production": {
        +      "type": "string"
        +    },
        +    "fields_checked": {
        +      "type": "integer"
        +    },
        +    "fields_passed": {
        +      "type": "integer"
        +    },
        +    "micro_operator_exemption": {
        +      "type": "boolean"
        +    },
        +    "missing_fields": {
        +      "type": "array"
        +    },
        +    "quantity": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_eudr_geolocation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "area_ha": {
        +      "type": "number"
        +    },
        +    "coordinates_valid": {
        +      "type": "boolean"
        +    },
        +    "geo_type": {
        +      "type": "string"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "micro_operator_exemption": {
        +      "type": "boolean"
        +    },
        +    "polygon_closed": {
        +      "type": "string"
        +    },
        +    "size_rule_met": {
        +      "type": "boolean"
        +    },
        +    "valid": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_eugb_factsheet1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aligned_proceeds": {
        +      "type": "integer"
        +    },
        +    "annex_i_complete": {
        +      "type": "boolean"
        +    },
        +    "annex_i_gaps": {
        +      "items": {
        +        "properties": {
        +          "section": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "annex_ii_status": {
        +      "type": "string"
        +    },
        +    "conformance_grade": {
        +      "type": "string"
        +    },
        +    "conformance_score": {
        +      "type": "integer"
        +    },
        +    "external_reviewer_status": {
        +      "type": "string"
        +    },
        +    "label_ready": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "proceeds_aligned_pct": {
        +      "type": "integer"
        +    },
        +    "proceeds_threshold_met": {
        +      "type": "boolean"
        +    },
        +    "proceeds_threshold_pct": {
        +      "type": "integer"
        +    },
        +    "reference": {
        +      "properties": {
        +        "annex_i_source": {
        +          "type": "string"
        +        },
        +        "annex_ii_source": {
        +          "type": "string"
        +        },
        +        "regulation": {
        +          "type": "string"
        +        },
        +        "reviewer_rts": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "total_proceeds": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_fdic370_output_file1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "art507_result": {
        +      "properties": {
        +        "accounts_with_uninsured_deposits_count": {
        +          "type": "integer"
        +        },
        +        "fully_insured_account_count": {
        +          "type": "integer"
        +        },
        +        "insured_minor_units": {
        +          "type": "integer"
        +        },
        +        "uninsured_minor_units": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "art507_supplied": {
        +      "type": "boolean"
        +    },
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "boundary": {
        +      "type": "string"
        +    },
        +    "conforming_row_count": {
        +      "type": "integer"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "file_structure_errors": {
        +      "type": "array"
        +    },
        +    "file_totals": {
        +      "properties": {
        +        "accounts_with_uninsured_deposits_count": {
        +          "type": "integer"
        +        },
        +        "deposit_account_count": {
        +          "type": "integer"
        +        },
        +        "distinct_account_holder_count": {
        +          "type": "integer"
        +        },
        +        "fully_insured_account_count": {
        +          "type": "integer"
        +        },
        +        "insured_minor_units": {
        +          "type": "integer"
        +        },
        +        "uninsured_minor_units": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "institution_ref": {
        +      "type": "string"
        +    },
        +    "mismatches": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "ownership_code_handling": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "small_buyer_caveat": {
        +      "type": "string"
        +    },
        +    "supplied_row_count": {
        +      "type": "integer"
        +    },
        +    "totals_mismatch": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_form5500_schedules1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "applicable_deadline": {
        +      "type": "string"
        +    },
        +    "arithmetic_tie": {
        +      "properties": {
        +        "expected_ending_assets": {
        +          "type": "integer"
        +        },
        +        "reported_ending_assets": {
        +          "type": "integer"
        +        },
        +        "ties": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "extended_filing_deadline": {
        +      "type": "string"
        +    },
        +    "filing_deadline": {
        +      "type": "string"
        +    },
        +    "is_large_plan": {
        +      "type": "boolean"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "required_schedules": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "shelf_note": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_fsma204_cte1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cte_type": {
        +      "type": "string"
        +    },
        +    "cte_valid": {
        +      "type": "boolean"
        +    },
        +    "ftl_food": {
        +      "type": "string"
        +    },
        +    "missing_kdes": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_ifrs17_csm_rollforward1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "closing_csm": {
        +      "type": "integer"
        +    },
        +    "csm_valid": {
        +      "type": "boolean"
        +    },
        +    "experience_adjustments": {
        +      "type": "integer"
        +    },
        +    "fx_adjustments": {
        +      "type": "integer"
        +    },
        +    "interest_accretion": {
        +      "type": "integer"
        +    },
        +    "loss_component": {
        +      "type": "integer"
        +    },
        +    "new_business_csm": {
        +      "type": "integer"
        +    },
        +    "onerous": {
        +      "type": "boolean"
        +    },
        +    "opening_csm": {
        +      "type": "integer"
        +    },
        +    "release_to_profit": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_mcp_authorization_metadata1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "auth_server_count": {
        +      "type": "integer"
        +    },
        +    "bearer_ok": {
        +      "type": "boolean"
        +    },
        +    "metadata_valid": {
        +      "type": "boolean"
        +    },
        +    "missing": {
        +      "type": "array"
        +    },
        +    "resource_ok": {
        +      "type": "boolean"
        +    },
        +    "scope_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_mcp_server_identity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "attested": {
        +      "type": "boolean"
        +    },
        +    "has_issuer": {
        +      "type": "boolean"
        +    },
        +    "has_server_info": {
        +      "type": "boolean"
        +    },
        +    "has_subject": {
        +      "type": "boolean"
        +    },
        +    "identity_valid": {
        +      "type": "boolean"
        +    },
        +    "missing": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_mcp_task_lifecycle1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "illegal_transitions": {
        +      "type": "array"
        +    },
        +    "lifecycle_valid": {
        +      "type": "boolean"
        +    },
        +    "transition_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_mletr_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "conformance_grade": {
        +      "type": "string"
        +    },
        +    "conformance_score": {
        +      "type": "number"
        +    },
        +    "corridor_matrix": {
        +      "properties": {
        +        "dest": {
        +          "type": "string"
        +        },
        +        "dest_status": {
        +          "type": "string"
        +        },
        +        "origin": {
        +          "type": "string"
        +        },
        +        "origin_status": {
        +          "type": "string"
        +        },
        +        "verdict": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "enforceability_tier": {
        +      "type": "string"
        +    },
        +    "governing_law_recommendation": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "remediation_checklist": {
        +      "items": {
        +        "properties": {
        +          "action": {
        +            "type": "string"
        +          },
        +          "article": {
        +            "type": "string"
        +          },
        +          "grade": {
        +            "type": "string"
        +          },
        +          "test": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "status_table_asof": {
        +      "type": "string"
        +    },
        +    "test_results": {
        +      "properties": {
        +        "control": {
        +          "properties": {
        +            "article": {
        +              "type": "string"
        +            },
        +            "grade": {
        +              "type": "string"
        +            },
        +            "remediation": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "integrity": {
        +          "properties": {
        +            "article": {
        +              "type": "string"
        +            },
        +            "grade": {
        +              "type": "string"
        +            },
        +            "remediation": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "reliability": {
        +          "properties": {
        +            "article": {
        +              "type": "string"
        +            },
        +            "grade": {
        +              "type": "string"
        +            },
        +            "remediation": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "singularity": {
        +          "properties": {
        +            "article": {
        +              "type": "string"
        +            },
        +            "grade": {
        +              "type": "string"
        +            },
        +            "remediation": {
        +              "type": "string"
        +            },
        +            "result": {
        +              "type": "string"
        +            },
        +            "score": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_mt700_lc_fields1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "errors": {
        +      "type": "array"
        +    },
        +    "field_results": {
        +      "items": {
        +        "properties": {
        +          "field": {
        +            "type": "string"
        +          },
        +          "issue": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "rule": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "value": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    },
        +    "warnings": {
        +      "items": {
        +        "properties": {
        +          "citation": {
        +            "type": "string"
        +          },
        +          "field": {
        +            "type": "string"
        +          },
        +          "message": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_openids_homeowners_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "errors": {
        +      "type": "array"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_fields_found": {
        +      "type": "array"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "record_valid": {
        +      "type": "boolean"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "section_results": {
        +      "properties": {
        +        "coverage": {
        +          "properties": {
        +            "field_errors": {
        +              "type": "array"
        +            },
        +            "present": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "insured_location": {
        +          "properties": {
        +            "field_errors": {
        +              "type": "array"
        +            },
        +            "present": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "policy": {
        +          "properties": {
        +            "field_errors": {
        +              "type": "array"
        +            },
        +            "present": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "premium": {
        +          "properties": {
        +            "field_errors": {
        +              "type": "array"
        +            },
        +            "present": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "sections_present": {
        +      "type": "integer"
        +    },
        +    "sections_required": {
        +      "type": "integer"
        +    },
        +    "standard_version": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    },
        +    "warnings": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_openvex_statement1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "context_ok": {
        +      "type": "boolean"
        +    },
        +    "invalid_statements": {
        +      "type": "array"
        +    },
        +    "statement_count": {
        +      "type": "integer"
        +    },
        +    "vex_valid": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_pacs008_party_completeness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliant": {
        +      "type": "boolean"
        +    },
        +    "cpmi_d218_score": {
        +      "type": "integer"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "error_count": {
        +      "type": "integer"
        +    },
        +    "field_status": {
        +      "properties": {
        +        "creditor_agent_bic": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "creditor_lei": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "creditor_name": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "debtor_agent_bic": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "debtor_lei": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "debtor_name": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "purpose_code": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "uetr": {
        +          "properties": {
        +            "present": {
        +              "type": "boolean"
        +            },
        +            "valid": {
        +              "type": "boolean"
        +            },
        +            "value_note": {
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "issues": {
        +      "type": "array"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "warning_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_qfc_recordkeeping_file1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "as_of_date": {
        +      "type": "string"
        +    },
        +    "boundary": {
        +      "type": "string"
        +    },
        +    "conforming_row_count": {
        +      "type": "integer"
        +    },
        +    "control_totals": {
        +      "properties": {
        +        "collateral_minor_units": {
        +          "type": "integer"
        +        },
        +        "distinct_counterparty_count": {
        +          "type": "integer"
        +        },
        +        "notional_minor_units": {
        +          "type": "integer"
        +        },
        +        "position_count": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "control_totals_supplied": {
        +      "type": "boolean"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "file_structure_errors": {
        +      "type": "array"
        +    },
        +    "file_totals": {
        +      "properties": {
        +        "collateral_minor_units": {
        +          "type": "integer"
        +        },
        +        "distinct_counterparty_count": {
        +          "type": "integer"
        +        },
        +        "notional_minor_units": {
        +          "type": "integer"
        +        },
        +        "position_count": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "identifier_salting": {
        +      "type": "string"
        +    },
        +    "institution_ref": {
        +      "type": "string"
        +    },
        +    "mismatches": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "qfc_code_handling": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "supplied_row_count": {
        +      "type": "integer"
        +    },
        +    "totals_mismatch": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_regf_call_frequency1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "debts": {
        +      "items": {
        +        "properties": {
        +          "calls_checked": {
        +            "type": "integer"
        +          },
        +          "debt_id": {
        +            "type": "string"
        +          },
        +          "quiet_period_presumption": {
        +            "type": "boolean"
        +          },
        +          "quiet_period_violations": {
        +            "type": "array"
        +          },
        +          "seven_in_seven_presumption": {
        +            "type": "boolean"
        +          },
        +          "seven_in_seven_trips": {
        +            "type": "array"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "debts_checked": {
        +      "type": "integer"
        +    },
        +    "debts_with_quiet_period_presumption": {
        +      "type": "integer"
        +    },
        +    "debts_with_seven_in_seven_presumption": {
        +      "type": "integer"
        +    },
        +    "disambiguation": {
        +      "type": "string"
        +    },
        +    "invalid_call_indices": {
        +      "type": "array"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "timezone_offset_minutes_applied": {
        +      "type": "integer"
        +    },
        +    "window_days": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_slate_report_fields1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "compliance_date_note": {
        +      "type": "string"
        +    },
        +    "field_spec_version": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "reports_checked": {
        +      "type": "integer"
        +    },
        +    "reports_valid": {
        +      "type": "integer"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "violations": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_spdx_sbom1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "format": {
        +      "type": "string"
        +    },
        +    "has_relationships": {
        +      "type": "boolean"
        +    },
        +    "package_count": {
        +      "type": "integer"
        +    },
        +    "packages_missing_version": {
        +      "type": "array"
        +    },
        +    "sbom_valid": {
        +      "type": "boolean"
        +    },
        +    "spdx_version": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_tempo_token_compliance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "fail_count": {
        +      "type": "integer"
        +    },
        +    "genius": {
        +      "properties": {
        +        "burn_blocked_warn": {
        +          "type": "boolean"
        +        },
        +        "currency_pass": {
        +          "type": "boolean"
        +        },
        +        "freeze_pass": {
        +          "type": "boolean"
        +        },
        +        "ofac_pass": {
        +          "type": "boolean"
        +        },
        +        "rbac_pass": {
        +          "type": "boolean"
        +        },
        +        "supply_cap_pass": {
        +          "type": "boolean"
        +        },
        +        "yield_warning": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "mica": {
        +      "properties": {
        +        "pause_capability": {
        +          "type": "boolean"
        +        },
        +        "reserve_disclosure": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warn_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_tempo_zone_disclosure1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "checks": {
        +      "properties": {
        +        "AML_COVERAGE_MAINTAINED": {
        +          "type": "boolean"
        +        },
        +        "COMPETITIVE_CONFIDENTIALITY": {
        +          "type": "boolean"
        +        },
        +        "OPERATOR_SEES_ALL": {
        +          "type": "boolean"
        +        },
        +        "REGULATOR_AUDIT_CAPABLE": {
        +          "type": "boolean"
        +        },
        +        "SELECTIVE_DISCLOSURE_CONFIRMED": {
        +          "type": "boolean"
        +        },
        +        "TIP403_ALLOWLIST": {
        +          "type": "boolean"
        +        },
        +        "TIP403_BLOCKLIST": {
        +          "type": "boolean"
        +        },
        +        "TIP403_CROSS_ZONE": {
        +          "type": "boolean"
        +        },
        +        "TIP403_FREEZE": {
        +          "type": "boolean"
        +        },
        +        "TRAVEL_RULE_COMPLIANT": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "operator_name": {
        +      "type": "string"
        +    },
        +    "use_case": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_tfr_travel_rule_batch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "batch_conformance_pct": {
        +      "type": "integer"
        +    },
        +    "batch_size": {
        +      "type": "integer"
        +    },
        +    "merkle_root": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "reference_version": {
        +      "type": "string"
        +    },
        +    "tfr_note": {
        +      "type": "string"
        +    },
        +    "transfers_flagged": {
        +      "type": "array"
        +    },
        +    "unhosted_dd_required_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_tip20_memo_commitment1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "commitment_source_supplied": {
        +      "type": "boolean"
        +    },
        +    "invoice_locator": {
        +      "type": "string"
        +    },
        +    "invoice_locator_commitment": {
        +      "type": "string"
        +    },
        +    "invoice_locator_match": {
        +      "type": "string"
        +    },
        +    "memo_hex": {
        +      "type": "string"
        +    },
        +    "memo_hex_valid": {
        +      "type": "boolean"
        +    },
        +    "memo_length_valid": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "overall_valid": {
        +      "type": "boolean"
        +    },
        +    "payload_commitment": {
        +      "type": "string"
        +    },
        +    "payload_commitment_match": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_w8_series_structural1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ch3_ch4_consistent": {
        +      "type": "boolean"
        +    },
        +    "chapter3_status": {
        +      "type": "string"
        +    },
        +    "chapter4_fatca_status": {
        +      "type": "string"
        +    },
        +    "days_until_expiry": {
        +      "type": "integer"
        +    },
        +    "form_ch3_compatible": {
        +      "type": "boolean"
        +    },
        +    "form_type": {
        +      "type": "string"
        +    },
        +    "is_structurally_valid": {
        +      "type": "boolean"
        +    },
        +    "not_legal_advice": {
        +      "type": "string"
        +    },
        +    "pii_note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "statutory_withholding_rate_pct": {
        +      "type": "integer"
        +    },
        +    "table_source": {
        +      "type": "string"
        +    },
        +    "table_version": {
        +      "type": "string"
        +    },
        +    "treaty_country": {
        +      "type": "string"
        +    },
        +    "treaty_rate_expected": {
        +      "type": "integer"
        +    },
        +    "treaty_rate_pct": {
        +      "type": "integer"
        +    },
        +    "treaty_rate_valid": {
        +      "type": "boolean"
        +    },
        +    "validity_expiry_date": {
        +      "type": "string"
        +    },
        +    "validity_window_ok": {
        +      "type": "boolean"
        +    },
        +    "violation_count": {
        +      "type": "integer"
        +    },
        +    "violations": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedvalidate_x402_deferred_handshake1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "errors": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "level": {
        +            "type": "string"
        +          },
        +          "msg": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "passes": {
        +      "type": "integer"
        +    },
        +    "required_covered_components": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "settlement_reference_id": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_a2a_agent_card1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "errors": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "level": {
        +            "type": "string"
        +          },
        +          "msg": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "has_ap2_extension": {
        +      "type": "boolean"
        +    },
        +    "has_signed_card": {
        +      "type": "boolean"
        +    },
        +    "passes": {
        +      "type": "integer"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_acdc_delegation_chain1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "chain_depth": {
        +      "type": "integer"
        +    },
        +    "edge_failures": {
        +      "type": "array"
        +    },
        +    "revocation_status_reported": {
        +      "type": "array"
        +    },
        +    "root_aid_matched": {
        +      "type": "boolean"
        +    },
        +    "said_failures": {
        +      "type": "array"
        +    },
        +    "valid": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_address_migration_batch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "batch_summary": {
        +      "properties": {
        +        "fail": {
        +          "type": "integer"
        +        },
        +        "pass": {
        +          "type": "integer"
        +        },
        +        "total": {
        +          "type": "integer"
        +        },
        +        "truncation_risk": {
        +          "type": "integer"
        +        },
        +        "warn": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "compliance_flags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "failing_records": {
        +      "items": {
        +        "properties": {
        +          "country": {
        +            "type": "string"
        +          },
        +          "index": {
        +            "type": "integer"
        +          },
        +          "issues": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "truncation_risk": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "november_2026_readiness_pct": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_anchored_extract1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "anchor_note": {
        +      "type": "string"
        +    },
        +    "anchored": {
        +      "type": "boolean"
        +    },
        +    "anchored_extract_determination": {
        +      "type": "string"
        +    },
        +    "claimed_root": {
        +      "type": "string"
        +    },
        +    "computed_root": {
        +      "type": "string"
        +    },
        +    "escalation": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "root_match": {
        +      "type": "boolean"
        +    },
        +    "source_class": {
        +      "type": "string"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_ap2_payment_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "authorized_amount_headroom": {
        +      "type": "string"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "result": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "hnp_verdict": {
        +      "type": "string"
        +    },
        +    "human_present": {
        +      "type": "boolean"
        +    },
        +    "mandate_chain_intact": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "receipt_id": {
        +      "type": "string"
        +    },
        +    "receipt_verdict": {
        +      "type": "string"
        +    },
        +    "signature_check": {
        +      "type": "string"
        +    },
        +    "status_asof": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_conversion_receipt1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "binding_ok": {
        +      "type": "boolean"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "digest_ok": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_did_webvh_log1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "current_version_id": {
        +      "type": "string"
        +    },
        +    "deactivated": {
        +      "type": "boolean"
        +    },
        +    "did": {
        +      "type": "string"
        +    },
        +    "entries_checked": {
        +      "type": "integer"
        +    },
        +    "failures": {
        +      "type": "array"
        +    },
        +    "valid": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_dscsa_transaction_statement1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "epcis_event": {
        +      "type": "string"
        +    },
        +    "identifier_valid": {
        +      "type": "boolean"
        +    },
        +    "missing_elements": {
        +      "type": "array"
        +    },
        +    "t3_complete": {
        +      "type": "boolean"
        +    },
        +    "transaction_date": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_einvoice_vat_calc1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "consistent": {
        +      "type": "boolean"
        +    },
        +    "grand_total_computed": {
        +      "type": "integer"
        +    },
        +    "grand_total_delta": {
        +      "type": "integer"
        +    },
        +    "parse_error": {
        +      "type": "string"
        +    },
        +    "rounding": {
        +      "properties": {
        +        "granularity": {
        +          "type": "string"
        +        },
        +        "method": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "subtotal_deltas": {
        +      "items": {
        +        "properties": {
        +          "matched_asserted_subtotal": {
        +            "type": "boolean"
        +          },
        +          "tax_amount_computed": {
        +            "type": "integer"
        +          },
        +          "tax_amount_delta": {
        +            "type": "integer"
        +          },
        +          "taxable_amount_computed": {
        +            "type": "integer"
        +          },
        +          "taxable_amount_delta": {
        +            "type": "integer"
        +          },
        +          "vat_category": {
        +            "type": "string"
        +          },
        +          "vat_rate_pct": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "tax_total_computed": {
        +      "type": "integer"
        +    },
        +    "tax_total_delta": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_erc165_interface_id1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "claimed_interface_id": {
        +      "type": "string"
        +    },
        +    "computed_interface_id": {
        +      "type": "string"
        +    },
        +    "duplicate_signatures": {
        +      "type": "array"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "known_standard_match": {
        +      "type": "string"
        +    },
        +    "malformed_signatures": {
        +      "type": "array"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "overall_determination": {
        +      "type": "string"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "selectors": {
        +      "items": {
        +        "properties": {
        +          "canonical_signature": {
        +            "type": "string"
        +          },
        +          "selector": {
        +            "type": "string"
        +          },
        +          "signature": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_erc8004_registry_entry1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "address_checksum_findings": {
        +      "items": {
        +        "properties": {
        +          "checksum_verdict": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "expected_checksum": {
        +            "type": "string"
        +          },
        +          "field": {
        +            "type": "string"
        +          },
        +          "value": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "agent_id_handling": {
        +      "type": "string"
        +    },
        +    "chain_id": {
        +      "type": "string"
        +    },
        +    "field_comparison": {
        +      "items": {
        +        "properties": {
        +          "claimed": {
        +            "type": "string"
        +          },
        +          "field": {
        +            "type": "string"
        +          },
        +          "match": {
        +            "type": "boolean"
        +          },
        +          "onchain": {
        +            "type": "string"
        +          },
        +          "opaque_identifier": {
        +            "type": "boolean"
        +          },
        +          "present_in_claimed": {
        +            "type": "boolean"
        +          },
        +          "present_in_onchain": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "verdict": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "overall_determination": {
        +      "type": "string"
        +    },
        +    "registry_address": {
        +      "type": "string"
        +    },
        +    "registry_type": {
        +      "type": "string"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_etf_pcf_basket1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cash_delta_minor": {
        +      "type": "integer"
        +    },
        +    "cash_deposited_minor": {
        +      "type": "integer"
        +    },
        +    "cash_in_lieu_total_minor": {
        +      "type": "integer"
        +    },
        +    "cash_matches": {
        +      "type": "boolean"
        +    },
        +    "cash_tolerance_minor": {
        +      "type": "integer"
        +    },
        +    "clause_note": {
        +      "type": "string"
        +    },
        +    "creation_unit_size": {
        +      "type": "integer"
        +    },
        +    "decision": {
        +      "properties": {
        +        "execution_state": {
        +          "type": "string"
        +        },
        +        "gate_policy": {
        +          "type": "string"
        +        },
        +        "reason": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "expected_cash_minor": {
        +      "type": "integer"
        +    },
        +    "findings": {
        +      "type": "array"
        +    },
        +    "line_count": {
        +      "type": "integer"
        +    },
        +    "line_results": {
        +      "items": {
        +        "properties": {
        +          "cash_in_lieu_value_minor": {
        +            "type": "integer"
        +          },
        +          "covered_quantity": {
        +            "type": "integer"
        +          },
        +          "delivered_quantity": {
        +            "type": "integer"
        +          },
        +          "expected_quantity": {
        +            "type": "integer"
        +          },
        +          "matches": {
        +            "type": "boolean"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "security_id": {
        +            "type": "string"
        +          },
        +          "substituted_quantity": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "pcf_as_of": {
        +      "type": "string"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "transaction_type": {
        +      "type": "string"
        +    },
        +    "units_requested": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_eth_state_proof1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "account": {
        +      "type": "string"
        +    },
        +    "account_exists": {
        +      "type": "boolean"
        +    },
        +    "address": {
        +      "type": "string"
        +    },
        +    "block_state_root": {
        +      "type": "string"
        +    },
        +    "bounded_limits": {
        +      "properties": {
        +        "max_account_proof_nodes": {
        +          "type": "integer"
        +        },
        +        "max_node_hex_len": {
        +          "type": "integer"
        +        },
        +        "max_storage_proof_nodes": {
        +          "type": "integer"
        +        },
        +        "max_storage_slots": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "diagnostic": {
        +      "type": "string"
        +    },
        +    "errors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "proof_nodes_consumed": {
        +      "type": "integer"
        +    },
        +    "receipt_statement": {
        +      "type": "string"
        +    },
        +    "regulatory_note": {
        +      "type": "string"
        +    },
        +    "storage_results": {
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_finp2p_ledger_proof1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "hash_match": {
        +      "properties": {
        +        "computed_hash": {
        +          "type": "string"
        +        },
        +        "expected_source": {
        +          "type": "string"
        +        },
        +        "result": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "hashlist_field_order": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "hashlist_values_consistent": {
        +      "type": "boolean"
        +    },
        +    "hashlist_values_declared": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "parse_errors": {
        +      "type": "array"
        +    },
        +    "scope_note": {
        +      "type": "string"
        +    },
        +    "signature_match": {
        +      "properties": {
        +        "curve": {
        +          "type": "string"
        +        },
        +        "hash_func": {
        +          "type": "string"
        +        },
        +        "result": {
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "verified_against": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_ipe_integrity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "control_total_delta": {
        +      "type": "integer"
        +    },
        +    "discrepancies": {
        +      "type": "array"
        +    },
        +    "hash_match": {
        +      "type": "boolean"
        +    },
        +    "integrity_status": {
        +      "type": "string"
        +    },
        +    "report_control_total": {
        +      "type": "integer"
        +    },
        +    "report_hash": {
        +      "type": "string"
        +    },
        +    "report_row_count": {
        +      "type": "integer"
        +    },
        +    "row_count_match": {
        +      "type": "boolean"
        +    },
        +    "source_control_total": {
        +      "type": "integer"
        +    },
        +    "source_extract_hash": {
        +      "type": "string"
        +    },
        +    "source_row_count": {
        +      "type": "integer"
        +    },
        +    "tolerance": {
        +      "type": "number"
        +    },
        +    "total_within_tolerance": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_kya_x402_scope1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "credential_audience": {
        +      "type": "string"
        +    },
        +    "credential_seller_service_id": {
        +      "type": "string"
        +    },
        +    "credential_subject": {
        +      "type": "string"
        +    },
        +    "findings": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "indeterminate_reasons": {
        +      "type": "array"
        +    },
        +    "kya_claim_basis": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "payload_network": {
        +      "type": "string"
        +    },
        +    "payload_scheme": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_license_election1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "binding_ok": {
        +      "type": "boolean"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_merkle_batch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "batch_integrity": {
        +      "type": "string"
        +    },
        +    "failed_count": {
        +      "type": "integer"
        +    },
        +    "invalid_count": {
        +      "type": "integer"
        +    },
        +    "pass_rate": {
        +      "type": "integer"
        +    },
        +    "results": {
        +      "type": "array"
        +    },
        +    "total": {
        +      "type": "integer"
        +    },
        +    "verified_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_migration_completeness1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregate_complete": {
        +      "type": "boolean"
        +    },
        +    "aggregate_count_variance": {
        +      "type": "integer"
        +    },
        +    "aggregate_value_variance_display": {
        +      "type": "string"
        +    },
        +    "aggregate_value_variance_minor_units": {
        +      "type": "integer"
        +    },
        +    "all_partitions_complete": {
        +      "type": "boolean"
        +    },
        +    "any_sampled_only": {
        +      "type": "boolean"
        +    },
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "declared_transformation_rules": {
        +      "type": "array"
        +    },
        +    "migration_complete": {
        +      "type": "boolean"
        +    },
        +    "migration_id": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "observed_changed_field_count": {
        +      "type": "integer"
        +    },
        +    "partition_count": {
        +      "type": "integer"
        +    },
        +    "partition_inconsistent": {
        +      "type": "boolean"
        +    },
        +    "partitions": {
        +      "items": {
        +        "properties": {
        +          "count_complete": {
        +            "type": "boolean"
        +          },
        +          "count_variance": {
        +            "type": "integer"
        +          },
        +          "excluded_record_count": {
        +            "type": "integer"
        +          },
        +          "excluded_value_display": {
        +            "type": "string"
        +          },
        +          "excluded_value_minor_units": {
        +            "type": "integer"
        +          },
        +          "expected_target_record_count": {
        +            "type": "integer"
        +          },
        +          "expected_target_value_display": {
        +            "type": "string"
        +          },
        +          "expected_target_value_minor_units": {
        +            "type": "integer"
        +          },
        +          "known_exclusions": {
        +            "items": {
        +              "properties": {
        +                "excluded_record_count": {
        +                  "type": "integer"
        +                },
        +                "excluded_value_display": {
        +                  "type": "string"
        +                },
        +                "excluded_value_minor_units": {
        +                  "type": "integer"
        +                },
        +                "reason_code": {
        +                  "type": "string"
        +                }
        +              },
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "partition_complete": {
        +            "type": "boolean"
        +          },
        +          "partition_label": {
        +            "type": "string"
        +          },
        +          "sample_discrepancies_found": {
        +            "type": "integer"
        +          },
        +          "sample_size": {
        +            "type": "integer"
        +          },
        +          "sampled": {
        +            "type": "boolean"
        +          },
        +          "source_control_total_display": {
        +            "type": "string"
        +          },
        +          "source_control_total_minor_units": {
        +            "type": "integer"
        +          },
        +          "source_record_count": {
        +            "type": "integer"
        +          },
        +          "target_control_total_display": {
        +            "type": "string"
        +          },
        +          "target_control_total_minor_units": {
        +            "type": "integer"
        +          },
        +          "target_record_count": {
        +            "type": "integer"
        +          },
        +          "value_complete": {
        +            "type": "boolean"
        +          },
        +          "value_variance_display": {
        +            "type": "string"
        +          },
        +          "value_variance_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "partitions_with_variance_count": {
        +      "type": "integer"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reconciliation_tolerance_minor_units": {
        +      "type": "integer"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "sample_discrepancies_total": {
        +      "type": "integer"
        +    },
        +    "sampled_partition_count": {
        +      "type": "integer"
        +    },
        +    "undeclared_transformed_fields": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_product_authenticity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "authentic": {
        +      "type": "boolean"
        +    },
        +    "chains_to_root": {
        +      "type": "boolean"
        +    },
        +    "ownership_continuous": {
        +      "type": "boolean"
        +    },
        +    "product_id": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_reserve_proof1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "computed_leaf_hash": {
        +      "type": "string"
        +    },
        +    "computed_root": {
        +      "properties": {
        +        "hash": {
        +          "type": "string"
        +        },
        +        "sum": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "declared_root": {
        +      "properties": {
        +        "hash": {
        +          "type": "string"
        +        },
        +        "sum": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "exchange": {
        +      "type": "string"
        +    },
        +    "inclusion_verified": {
        +      "type": "boolean"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "por_round": {
        +      "type": "string"
        +    },
        +    "regulatory_framework": {
        +      "type": "string"
        +    },
        +    "reserve_proof_determination": {
        +      "type": "string"
        +    },
        +    "root_hash_match": {
        +      "type": "boolean"
        +    },
        +    "storage_proof_composition": {
        +      "properties": {
        +        "composed": {
        +          "type": "boolean"
        +        },
        +        "note": {
        +          "type": "string"
        +        },
        +        "source": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    },
        +    "sum_verified": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_revocation_status1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "note": {
        +      "type": "string"
        +    },
        +    "revoked_for_purpose": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "type": "string"
        +    },
        +    "status_list_credential_url": {
        +      "type": "string"
        +    },
        +    "status_list_index": {
        +      "type": "string"
        +    },
        +    "structural_error": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_saleable_return1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "id_match": {
        +      "type": "boolean"
        +    },
        +    "lot_match": {
        +      "type": "boolean"
        +    },
        +    "match": {
        +      "type": "boolean"
        +    },
        +    "reason": {
        +      "type": "string"
        +    },
        +    "txn_anchored": {
        +      "type": "boolean"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_settlement_asset_backing1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "aggregate_backing_after_display": {
        +      "type": "string"
        +    },
        +    "aggregate_backing_after_minor_units": {
        +      "type": "integer"
        +    },
        +    "aggregate_backing_before_display": {
        +      "type": "string"
        +    },
        +    "aggregate_backing_before_minor_units": {
        +      "type": "integer"
        +    },
        +    "as_of": {
        +      "type": "string"
        +    },
        +    "backing_applicable": {
        +      "type": "boolean"
        +    },
        +    "backing_intact_after": {
        +      "type": "boolean"
        +    },
        +    "backing_intact_before": {
        +      "type": "boolean"
        +    },
        +    "backing_model": {
        +      "type": "string"
        +    },
        +    "backing_ratio_bps": {
        +      "type": "integer"
        +    },
        +    "breaches_after": {
        +      "type": "array"
        +    },
        +    "breaches_before": {
        +      "type": "array"
        +    },
        +    "buffer_count": {
        +      "type": "integer"
        +    },
        +    "buffer_margins": {
        +      "items": {
        +        "properties": {
        +          "buffer_id": {
        +            "type": "string"
        +          },
        +          "safe_margin_minor_units": {
        +            "type": "integer"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "buffers": {
        +      "items": {
        +        "properties": {
        +          "asset_type": {
        +            "type": "string"
        +          },
        +          "backs": {
        +            "type": "string"
        +          },
        +          "balance_after_minor_units": {
        +            "type": "integer"
        +          },
        +          "balance_before_minor_units": {
        +            "type": "integer"
        +          },
        +          "buffer_id": {
        +            "type": "string"
        +          },
        +          "max_minor_units": {
        +            "type": "string"
        +          },
        +          "min_minor_units": {
        +            "type": "integer"
        +          },
        +          "role": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "crossing_cost_display": {
        +      "type": "string"
        +    },
        +    "crossing_cost_minor_units": {
        +      "type": "integer"
        +    },
        +    "crossing_count": {
        +      "type": "integer"
        +    },
        +    "idle_amount_minor_units": {
        +      "type": "integer"
        +    },
        +    "idle_cost_display": {
        +      "type": "string"
        +    },
        +    "idle_cost_minor_units": {
        +      "type": "integer"
        +    },
        +    "movement_breaks_invariant": {
        +      "type": "string"
        +    },
        +    "movements": {
        +      "items": {
        +        "properties": {
        +          "amount_minor_units": {
        +            "type": "integer"
        +          },
        +          "applied": {
        +            "type": "boolean"
        +          },
        +          "external_crossing": {
        +            "type": "boolean"
        +          },
        +          "from": {
        +            "type": "string"
        +          },
        +          "movement_id": {
        +            "type": "string"
        +          },
        +          "to": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rejected_inputs": {
        +      "type": "array"
        +    },
        +    "required_backing_display": {
        +      "type": "string"
        +    },
        +    "required_backing_minor_units": {
        +      "type": "integer"
        +    },
        +    "thinnest_buffer": {
        +      "properties": {
        +        "buffer_id": {
        +          "type": "string"
        +        },
        +        "safe_margin_minor_units": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "value_in_circulation_display": {
        +      "type": "string"
        +    },
        +    "value_in_circulation_minor_units": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_slsa_provenance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "builder_id_present": {
        +      "type": "boolean"
        +    },
        +    "pred_ok": {
        +      "type": "boolean"
        +    },
        +    "provenance_valid": {
        +      "type": "boolean"
        +    },
        +    "slsa_build_level": {
        +      "type": "integer"
        +    },
        +    "subject_digest_match": {
        +      "type": "boolean"
        +    },
        +    "type_ok": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_timestamp_attestation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "algo_match": {
        +      "type": "boolean"
        +    },
        +    "hash_match": {
        +      "type": "boolean"
        +    },
        +    "ts_consistent": {
        +      "type": "boolean"
        +    },
        +    "verified": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_trade_document_set1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "consistency_verdict": {
        +      "type": "string"
        +    },
        +    "doc_count": {
        +      "type": "integer"
        +    },
        +    "invoicing_deviation_pct": {
        +      "type": "string"
        +    },
        +    "merkle_root": {
        +      "type": "string"
        +    },
        +    "mismatches": {
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "tbml_flags": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_trid_apr_accuracy1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "abs_difference_pct": {
        +      "type": "number"
        +    },
        +    "actual_apr_pct": {
        +      "type": "number"
        +    },
        +    "difference_pct": {
        +      "type": "number"
        +    },
        +    "disclosed_apr_pct": {
        +      "type": "number"
        +    },
        +    "headroom_pct": {
        +      "type": "number"
        +    },
        +    "irregularity_reasons": {
        +      "type": "array"
        +    },
        +    "is_irregular_transaction": {
        +      "type": "boolean"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "tolerance_pct": {
        +      "type": "number"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "within_tolerance": {
        +      "type": "boolean"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedverify_witness_cosignatures1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "__async": {
        +      "type": "boolean"
        +    },
        +    "anchored_hash": {
        +      "type": "string"
        +    },
        +    "checks": {
        +      "items": {
        +        "properties": {
        +          "check": {
        +            "type": "string"
        +          },
        +          "detail": {
        +            "type": "string"
        +          },
        +          "pass": {
        +            "type": "boolean"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "log_origin": {
        +      "type": "string"
        +    },
        +    "mode": {
        +      "type": "string"
        +    },
        +    "not_proven": {
        +      "items": {
        +        "properties": {
        +          "detail": {
        +            "type": "string"
        +          },
        +          "item": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "parsed": {
        +      "properties": {
        +        "extensionLines": {
        +          "type": "array"
        +        },
        +        "noteText": {
        +          "type": "string"
        +        },
        +        "origin": {
        +          "type": "string"
        +        },
        +        "rootHex": {
        +          "type": "string"
        +        },
        +        "sigLines": {
        +          "items": {
        +            "properties": {
        +              "blob_b64": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "size": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "threshold": {
        +      "type": "integer"
        +    },
        +    "witness_keys": {
        +      "items": {
        +        "properties": {
        +          "algorithm": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "public_key_b64": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
  16. 4 tool updates
    • Changedclassify_ledger_consensus_finality1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "description": "Derived from the kernel's golden conformance fixtures (chaingraph/kernels/fixtures/art-527-classify-ledger-consensus-finality.fixtures.json) per CONTRACT.md §2.7 truth maintenance.",
        +  "properties": {
        +    "as_of_ts": {
        +      "type": "integer"
        +    },
        +    "chain_label": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "claim_verdict": {
        +      "enum": [
        +        "claim_supported",
        +        "claim_overstated",
        +        "no_claim"
        +      ],
        +      "type": "string"
        +    },
        +    "claimed_tier": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "draft_pinned": {
        +      "type": "boolean"
        +    },
        +    "finality_tier": {
        +      "enum": [
        +        "final_success",
        +        "final_failure_tec",
        +        "final_never_included",
        +        "expired_unprovable",
        +        "final",
        +        "pending"
        +      ],
        +      "type": "string"
        +    },
        +    "highest_validated_ledger": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "included_in_ledger": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "meets_required_tier": {
        +      "type": "boolean"
        +    },
        +    "outcome": {
        +      "enum": [
        +        "final_success",
        +        "final_failure_tec",
        +        "final_never_included",
        +        "expired_unprovable",
        +        "final",
        +        "pending"
        +      ],
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "reorg_exposure": {
        +      "enum": [
        +        "none"
        +      ],
        +      "type": "string"
        +    },
        +    "required_tier": {
        +      "type": "string"
        +    },
        +    "result_class": {
        +      "enum": [
        +        "tes",
        +        "tec",
        +        "other",
        +        null
        +      ],
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "settlement_model": {
        +      "enum": [
        +        "deadline_bounded_inclusion",
        +        "federated_bft"
        +      ],
        +      "type": "string"
        +    },
        +    "submitted_at_ledger": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "time_bounds_max": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedcompute_apy_earned_recompute
    • Addedpublish_fund_nav_head
    • Changedrecompute_best_execution1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "description": "Derived from the kernel's golden conformance fixtures (chaingraph/kernels/fixtures/art-541-best-execution-recompute.fixtures.json) per CONTRACT.md §2.7 truth maintenance.",
        +  "properties": {
        +    "avg_price_improvement_bps": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "fill_count": {
        +      "type": "integer"
        +    },
        +    "fill_set_ceiling": {
        +      "type": "integer"
        +    },
        +    "fill_set_truncated": {
        +      "type": "boolean"
        +    },
        +    "fills": {
        +      "items": {
        +        "properties": {
        +          "at_or_better": {
        +            "type": [
        +              "boolean",
        +              "null"
        +            ]
        +          },
        +          "execution_price": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "index": {
        +            "type": "integer"
        +          },
        +          "nbbo_ask": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "nbbo_bid": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "price_improvement_bps": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "quantity": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "rejection_reason": {
        +            "enum": [
        +              "INVALID_SIDE",
        +              "INVALID_EXECUTION_PRICE",
        +              "MISSING_NBBO_ASK",
        +              "MISSING_NBBO_BID",
        +              null
        +            ],
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "side": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "pct_at_or_better": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "regulatory_basis": {
        +      "type": "string"
        +    },
        +    "rejected_count": {
        +      "type": "integer"
        +    },
        +    "rules_version": {
        +      "type": "string"
        +    },
        +    "scored_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
  17. 1 tool update
    • Addedsuite_howto
  18. 6 tool updates
    • Addedcompile_nav_error_evidence_pack
    • Addedcompute_derivatives_margin_workbench
    • Addedcompute_forecast_accuracy_score
    • Addedcompute_perp_funding_implied_yield
    • Addedpublish_index_head
    • Addedpublish_market_mark_head

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    53 regulatory compliance evidence tools across 3 MCP servers for AI agents. MiCA authorization status, DORA evidence packs, stablecoin risk scoring (105+ tokens), macro intelligence (86 FRED series). Every response ECDSA-signed (ES256K), blockchain-anchored, audit-ready. Free tier, OAuth 2.0.
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    Provides 667 specialized tools for financial and operational tasks, including fund accounting, compliance, DeFi, and tax management. It enables users to integrate extensive financial intelligence and automated workflows into any MCP-compatible client.
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    Provides cryptographically verifiable RWA trust attestations and multi-chain DeFi data (TVL, top protocols, positioning scorecards) via MCP tools for AI assistants.
    11
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.